CICD/docker
[Docker] Container 관리
[dev] hiro
2024. 6. 17. 19:58
해당 포스팅은 이성미 강사님의 따라 배우는 도커(따배도, https://www.youtube.com/@ttabae-learn)를 보고 공부한 내용을 정리한 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
오늘은 고통스럽다.
내일은 더 고통스럽다.
그리고 내일 모래는 아름다울 것이다.
Mǎ Yún(알리바바 그룹 창업자 겸 회장)
Container 하드웨어 리소스 제한
- 기본으로 컨테이너는 호스트 하드웨어 리소스의 사용제한을 받지 않음.
- 컨테이너가 필요한만큼 할당해야 함.
- docker command를 통해 제한할 수 있는 리소스
- CPU
- Memory
- Disk io
- docker run --help를 통해 확인
Memory 리소스 제한
- 제한 단위 b(byte), k(KB), m(MB), g(GB)
- --memory, -m
- 컨테이너가 사용할 최대 메모리양 지정
- 할당된 것보다 더 많은 메모리 사용시 죽어버림
- --memory-swap
- 컨테이너가 사용할 스왑 메모리 영역에 대한 설정
- 메모리 + 스왑 메모리
- 생략시 메모리의 2배가 설정
- --memory-reservation
- --memory 값보다 작은 값으로 구성하는 소프트 제한 값 설정
- --oom-kill-disable
- OOM Killer가 프로세스 kill하지 못하도록 보호
CPU 리소스 제한
- --cpus
- 컨테이너에 할당할 CPU core 수 설정
- --cpus="1.5" 컨테이너가 최대 1.5개의 CPU 파워 사용 가능
- 연산 작업이 많은 컨테이너에 cpu 수를 늘리면 좋음.
- --cpuset-cpus
- 컨테이너가 사용할 수 있는 CPU나 코어를 할당. cpu index는 0부터
- --putset-cpus=0-4
- --cpu-share
- 컨테이너가 사용하는 CPU 비중을 1024 값을 기반으로 설정.
- --cpu-share 2048 기본값보다 두배 많은 CPU 자원 할당.
Block IO 제한
- --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를 제한해서 IO를 발생시킴. 0이상의 정수로 표기
- 초당 데이터 전송량 = IOPS * 블럭 크기(단위 데이터 용량)
컨테이너 사용 리소스를 확인하는 모니터링 툴
- docker monitoring commands
- docker stat: 실행중인 컨테이너의 런타임 통계
- docker stats [options] [container]
- docker event: 도커 호스트의 실시간 event 정보를 수집해서 출력
- docker events -f container=<MAME>
- docker image -f container=<MAME>
- docker stat: 실행중인 컨테이너의 런타임 통계
- docker monitoring application
- cAdvisor