[DOCKER] 컨테이너 관리

2021. 10. 28. 13:38·DOCKER
728x90

컨테이너 리소스 제한

기본으로 컨테이너는 호스트 하드웨어 리소스 사용제한을 받지 않음, 하지만 Docker 커맨드를 통하여 아래 리소스를 제한할 수 있음

  • CPU
  • Memory
  • Disk I/O

docker run --help 명령어를 통해 확인 가능함 

-m, --memory bytes                   Memory limit
      --memory-reservation bytes       Memory soft limit
      --memory-swap bytes              Swap limit equal to memory plus swap: '-1' to enable unlimited swap
      --memory-swappiness int          Tune container memory swappiness (0 to 100) (default -1)
      --mount mount                    Attach a filesystem mount to the container

..

-c, --cpu-shares int                 CPU shares (relative weight)
      --cpus decimal                   Number of CPUs
      --cpuset-cpus string             CPUs in which to allow execution (0-3, 0,1)
      --cpuset-mems string             MEMs in which to allow execution (0-3, 0,1)
      
..

-a, --attach list                    Attach to STDIN, STDOUT or STDERR
      --blkio-weight uint16            Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)
      --blkio-weight-device list       Block IO weight (relative device weight) (default [])

Memory 리소스 제한

제한 단위는 b, k, m, g로 할당

--memory, -m  컨테이너가 사용할 최대 메모리 양 지정
--memory -swap 컨테이너가 사용할 스왑 메모리 영역에 대한 설정
메모리+스왑. 생략시 메모리의 2배가 설정됨
--memory-reservation --memory 갑솝다 적은 값으로 구성하는 소프트 제한 값 설정
--oom-kill-disable OOM Killer가 프로세스 kill 하지 못하도록 보호
  • docker run -d -m 512m nginx:1.14 : nginx 기동시 할당된 메모리 512m로 제한 
  • docker run -d -m 1g --memory-reservation 500m nginx:1.14 : nginx 기동시 적어도 500m 메모리사용 보장받으면서 최대 1g로 제한
  • docker run -d -m 200m --memory-swap 300m nginx1.14 : 메모리 200m 까지 사용 swap 사이즈 300m 까지 사용(실제 swap 사이즈는 100m, swap 300m은 메모리 + 실제 swap)
  • docker run -d -m 200m --oom-kill-disable nginx:1.14 : OOM killer가 nginx 프로세스 kill 하지못함 

CPU 리소스 제한

--cpus 컨테이너에 할당할 CPU core수를 지정
--cpus="1.5" 컨테이너가 최대 1.5개의 CPU파워 사용가능
--cpuset-cpus 컨테이너가 사용할 수 있는 CPU나 코어를 할당, cpu index는 0부터, --cpuset-cpus=0-4
--cpu-share 컨테이너가 사용하는 CPU비중을 1024 값을 기반으로 설정
--cpu-share 2048 기본값보다 두배 많은 CPU 자원을 할당
  • docker run -d --cpus=".5" ubuntu:1.14 : 한개 코어의 절반만 사용
  • docker run -d --cpu-shares 2048 ubuntu:1.14 : 다른 컨테이너보다 cpu를 두배 사용
  • docker run -d --cpuset-cpus 0-3 ubuntu:1.14 : 코어 0번부터 3까지 사용하게 제한 

Block I/O 제한

--blkio-weight
--blkio-weight-device
Block IO의 Quota를 설정할 수 있으며 100 ~ 1000까지 선택
default 500
--device-read-bps
--device-write-bps
특정 디바이스에 대한 읽기와 쓰기 작업의 초당 제한을 kb, mb,gb 단위로 설정
--device-read-iops
--device-write-iops
컨테이너의 read/write 속도의 쿼터를 설정
초당 quota를 제한해서 I/O를 발생시킴, 0 이상 정수로 표기
초당 데이터 전송량 = IOPS * 블럭크기 (단위 데이터 용량)

Docker 리소스 확인

  • docker stats : 실행중인 컨테이너 런타임 통계 확인
  • docker event : 도커 호스트의 실시간 event정보를 수집해서 출력
저작자표시

'DOCKER' 카테고리의 다른 글

[DOCKER] 도커컴포즈  (0) 2021.10.28
[DOCKER] 컨테이너 볼륨  (0) 2021.10.28
[DOCKER] 계정 관리자 권한 부여  (0) 2021.10.26
[DOCKER] 삭제방법  (0) 2021.10.26
[DOCKER] 설치  (0) 2021.10.26
'DOCKER' 카테고리의 다른 글
  • [DOCKER] 도커컴포즈
  • [DOCKER] 컨테이너 볼륨
  • [DOCKER] 계정 관리자 권한 부여
  • [DOCKER] 삭제방법
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    Spring
    docker
    IntelliJ
    코틀린
    엘라스틱서치
    java
    클린코드
    AWS
    ElasticSearch
    이펙티브 코틀린
    go
    이펙티브코틀린
    JPA
    Kafka
    Elk
    프로그래머스
    SQL
    splunk
    자바
    cleancode
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[DOCKER] 컨테이너 관리
상단으로

티스토리툴바