도커 컨테이너는 기본적으로 호스트의 자원을 제한 없이 사용하게 된다.

컨테이너의 자원 할당을 제한하여 호스트와 다른 컨테이너의 동작을 방해하지 않게 설정을 할 수 있다.

컨테이너에 자원 할당 옵션을 설정하지 않으면 호스트의 자원을 전부 점유하여 다른 컨테이너들 뿐만 아닌

호스트 자체의 동작이 정지 될 수 있는 장애를 발생 할 수 있다.


다음은 컨테이너에 설정된 자원 제한을 확인하는 방법이다.

# docker inspect rsyslog
syslog
[
{
...
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": [],
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
},


run 명령어에서 실행되는 컨테이너의 자원 제한을 변경하려면,

update명령어를 사용할 수 있다.

# docker update {변경될 자원제한} {컨테이너이름}
# docker update --cpuset-cpus=1 centos ubuntu


컨테이너 메모리 제한

docker run 에 --memory 옵션을 사용하여 컨테이너의 메모리를 제한 할 수 있다.

입력단위는 m(megabyte), g(gigabyte) 이며 제한 할 수 있는 최소 메모리는 4 MB 이다.

다음의 명령어는 1GB로 메모리 사용량을 제한한다.

# docker run -d \
--memory="1g" \
--name memory
nginx


# docker inspect memory | grep \"Memory\"Memory" : 10234124123,

컨테이너 에서 동작하는 프로세스가 컨테이너에 할당된 메모리를 초과하면 

컨테이너는 자동으로 종료 된다.




  • No labels