Docker

컨테이너의 작동원리(namespace and cgroup)

컨테이너는 프로세스 격리화 기술입니다.

컨테이너는 격리된 프로세스 사용을 위해 리눅스 커널의 namespace와 cgroup이라는 기술을 사용합니다.

 

  • namespace
    vm은 머신별로 독립적인 공간을 제공해 서로가 충돌하지 않도록 하는 기능이 있다. 리눅스에서는 이와 동일한 역할을 하는 namespace기능을 커널에 내장하고 있다. namespace는 mnt, pid, net, ipc, uts, user 에 대한 격리화를 지원한다. 즉, 컨테이너에 실행된 프로세스가 시스템에 대해서 독립되어 볼 수 있도록 구현해 준다.

 

  • cgroup
    자원에 대한 제어를 가능하게 해주는 리눅스 커널 기능입니다. cpu, mem, I/O, network, device 를 제어할 수 있다.