클라우드

리소스 관리 및 모니터링

not cozy 2025. 2. 19. 19:09

Docker 리소스 관리

 

기본적으로 컨테이너를 생성할 때, 하드웨어 리소스의 사용 제한을 받지 않습니다. 그렇기 때문에 하나의 컨테이너가 모든 리소스를 사용할 수 있게 되고, 다른 컨테이너가 상대적으로 적은 리소스를 사용하게 됩니다.

1. Memory 리소스 할당


docker run -d -m 500m [컨테이너이름:tag]

docker run -d -m 1g --memory-reservation 500m [컨테이너 이름:tag]

docker run -d -m 200m --memory-swap 300m [컨테이너 이름:tag] // 실제 mem=200m, swap=100m

docker run -d -m 200m --oom-kill-disable [컨테이너 이름:tag]

2. CPU 리소스 할당


docker run -d --cpus="1.5" [컨테이너이름:tag이름]

docker run -d --cpu-shares 1024 [컨테이너이름:tag이름]

docker run -d --cpuset-cpus 0-3 [컨테이너이름:tag이름]

3. 이미 생성된 container 리소스 재설정


docker update [리소스 설정] [컨테이너 이름]
docker update --cpus=5 test

4-1. 리소스 확인 (실시간)


# 전체 컨테이너 실시간 사용률 확인
docker container stats 

# 특정 컨테이너 실시간 사용률 확인
docker container stats [컨테이너 이름]

4-2. 리소스 확인 (컨테이너 자체 설정된 리소스)


# 모든 정보가 다 나옴 
docker inspect [컨테이너이름]

# 특정 항목만 보려면(메모리)
docker inspect [컨테이너이름]|grep "Memory"

# 특정 항목만 보려면(cpu)
docker inspect [컨테이너이름]|grep "Cpus"
> "NanoCpus":1000000000 => 1개 라는 의미