리소스 사용량 제어(CPU, 메모리, 디스크 I/O, 네트워크)
cgroup은 프로세스 그룹을 생성하고, 이 그룹에 대한 리소스 사용량을 제어하고 모니터링하는 리눅스 커널의 기능입니다. 도커에서 cgroup은 컨테이너의 리소스 할당과 사용을 관리하는 데 사용됩니다.
cgroup을 사용하여 CPU, 메모리, 디스크 I/O, 네트워크 등의 리소스를 컨테이너에 할당하고, 각 컨테이너가 할당 받은 리소스를 초과하지 않도록 제한할 수 있습니다. 이를 통해 컨테이너 간에 리소스 충돌을 방지하고, 안정적인 작업 환경을 유지할 수 있습니다.
네임스페이스는 리눅스 커널에서 프로세스의 격리를 제공하는 기능입니다.
도커에서는 여러 가지 유형의 네임스페이스를 사용하여 컨테이너의 프로세스, 파일 시스템, 네트워크, 호스트 이름 등을 격리합니다.
각 컨테이너는 독립적인 프로세스 ID(PID) 네임스페이스를 가지며, 다른 컨테이너와 격리된 프로세스 트리를 갖게 됩니다.
컨테이너마다 독립적인 파일 시스템을 가지며, 호스트 및 다른 컨테이너의 파일 시스템과 격리됩니다.
각 컨테이너는 독립적인 네트워크 스택을 가지며, IP 주소, 포트 등이 격리됩니다.
각 컨테이너는 독립된 호스트 이름을 가지며, 호스트 시스템과 격리됩니다.
네임스페이스를 사용하여 컨테이너 간에 격리된 환경을 생성할 수 있으며, 각 컨테이너는 자체적인 프로세스, 파일 시스템, 네트워크 등을 가질 수 있습니다.