[docker] cgroup과 네임스페이스

bunny.log·2023년 6월 30일
0

cgroup(Control Groups)

리소스 사용량 제어(CPU, 메모리, 디스크 I/O, 네트워크)

cgroup은 프로세스 그룹을 생성하고, 이 그룹에 대한 리소스 사용량을 제어하고 모니터링하는 리눅스 커널의 기능입니다. 도커에서 cgroup은 컨테이너의 리소스 할당과 사용을 관리하는 데 사용됩니다.

cgroup을 사용하여 CPU, 메모리, 디스크 I/O, 네트워크 등의 리소스를 컨테이너에 할당하고, 각 컨테이너가 할당 받은 리소스를 초과하지 않도록 제한할 수 있습니다. 이를 통해 컨테이너 간에 리소스 충돌을 방지하고, 안정적인 작업 환경을 유지할 수 있습니다.

네임스페이스(Namespace)

네임스페이스는 리눅스 커널에서 프로세스의 격리를 제공하는 기능입니다.

도커에서는 여러 가지 유형의 네임스페이스를 사용하여 컨테이너의 프로세스, 파일 시스템, 네트워크, 호스트 이름 등을 격리합니다.

  1. 컨테이너의 프로세스
  2. 파일 시스템
  3. 네트워크
  4. 호스트

프로세스 네임스페이스

각 컨테이너는 독립적인 프로세스 ID(PID) 네임스페이스를 가지며, 다른 컨테이너와 격리된 프로세스 트리를 갖게 됩니다.

마운트 네임스페이스

컨테이너마다 독립적인 파일 시스템을 가지며, 호스트 및 다른 컨테이너의 파일 시스템과 격리됩니다.

네트워크 네임스페이스

각 컨테이너는 독립적인 네트워크 스택을 가지며, IP 주소, 포트 등이 격리됩니다.

호스트네임 네임스페이스

각 컨테이너는 독립된 호스트 이름을 가지며, 호스트 시스템과 격리됩니다.
네임스페이스를 사용하여 컨테이너 간에 격리된 환경을 생성할 수 있으며, 각 컨테이너는 자체적인 프로세스, 파일 시스템, 네트워크 등을 가질 수 있습니다.

profile
https://github.com/nam-yeun-hwa

0개의 댓글