본문 바로가기
IT/도커

9. 도커 엔진, cgroups

by 노오-력 2023. 1. 25.

리눅스 호스트에 docker를 설치하면 컴포넌트가 3개 설치된다.

Docker Daemon은 docker객체인 이미지와 컨테이너,

볼륨 및 네트워크를 관리하는 백그라운드 프로세스이다.

 

Docker REST API 서버는 프로그램이 쓰는 API인터페이스로

Daemon과 통신하고 명령어를 제공할때 사용된다.

 

Docker CLI는 명령줄 인터페이스이며

컨테이너 실행, 중지 및 이미지 제거 등에 사용된다.

또한 REST API를 사용하여 Docker Daemon과 상호작용하는데

이때는 Docker CLI가 반드시 같은 호스트에 있지 않아도 된다.

docker 명령어에서 -H 옵션을 사용해서

원격 Docker Engine의 주소와 포트를 지정하면 된다.

 

 

 

cgroups

Docker 호스트와 컨테이너는

CPU와 메모리 등의 동일한 시스템 리소스를 공유한다.

호스트 및 컨테이너에 각각 얼마만큼의 리소스가 할당될까?

도커는 컨테이너 간 리소스를 어떻게 관리하고 공유할까?

 

컨테이너가 사용할 수 있는 리소스는 기본적으로 제한이 없어서

컨테이너는 결국 기본 호스트의 모든 리소스를 활용할 수 있다.

 

하지만 컨테이너가 사용할 CPU나 메모리의 양을 제한할 수 있다.

Docker Cgroups 즉, 제어 그룹을 사용하여

각 컨테이너에 할당된 하드웨어 리소스 양을 제한할 수 있다.

ex) cpu사용량을 50프로로 제한하기
$ docker run --cpus=.5 ubuntu

ex) memory 사용량을 100MB로 제한하기
$ docker run --memory=100m ubuntu

--cups 옵션을 사용해 cpu 사용 %를 제한 할 수 있고

--memory 옵션을 사용해 사용할 수 있는 메모리 양을 제한할수있다.

'IT > 도커' 카테고리의 다른 글

React + vite + typescript 프로젝트 도커 이미지 빌드  (0) 2023.06.26
10. 네트워킹  (0) 2023.01.27
8. docker registry  (0) 2023.01.25
7. docker compose  (0) 2023.01.25
6. CMD vs ENTRYPOINT  (0) 2023.01.22