리눅스에서 네임스페이스는 시스템 자원을 격리하는 기술
컨테이너는 이걸 이용해서 다른 프로세스나 환경과 분리된 자기만의 공간처럼 동작함
| 종류 | 격리 대상 설명 |
|---|---|
pid | 프로세스 ID. 컨테이너 안에서는 PID 1부터 시작 |
net | IP, 포트, 네트워크 인터페이스 등을 분리 |
mnt | 파일 시스템 마운트 포인트를 분리 |
uts | 호스트 이름 (hostname)을 분리 |
ipc | 공유 메모리, 메시지 큐 같은 IPC 자원을 격리 |
user | 사용자/그룹 ID를 분리 |
cgroups는 리눅스 자원을 제한하거나 추적하는 기능
컨테이너가 시스템 자원을 과도하게 쓰지 않게 조절할 수 있다
| 자원 | 설명 |
|---|---|
| CPU | 사용 가능한 CPU 양을 제한한다 |
| 메모리 | 최대 메모리 사용량을 제한한다 |
| 디스크 I/O | 디스크 읽기/쓰기 속도를 제한한다 |
| 네트워크 | 대역폭을 제한한다 |
이 둘을 함께 사용해서 도커 컨테이너는 격리되고 가볍게 동작한다.