Docker Container


컨테이너란 (Container)

  • 호트스 OS상에 논리적인 구획(컨테이너)를 만들고, 어플리케이션을 작동시키기 위해 필요한 라이브러리나 어플리케이션을 하나로 모아, 마치 별도의 서버인 것처럼 사용할 수 있게 만든 것 입니다.

VM(Virtual Machine) vs Docker Container

Virual Machine

Virual Machine




VM은 하이퍼바이저 를 이용해 여러개의 운영체제를 하나의 호스트에서 생성해서 사용하는 방식입니다.


이러한 여러 운영체제는 가상 머신이라는 단위로 구별되고 가상머신에는 여러가지 운영체제가 설치되어 사용됩니다.

하이퍼바이저에 의해 생성되고 관리되는 운영체제는 게스트 운영체지 (Guset OS)라고 하며, 각 게스트 운영체제는

다른 게스트 운영체제와는 완전히 독립된 공관과 시스템 자원을 할당받아 사용합니다.

EX) VirtualBox, VMware


각종 시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 하이퍼바이저 를 반드시 거치기 때문에 일반 호스트에 비해 성능 손실이 발생합니다.

또한 가상 머신은 게스트 운영체제를 사용하기 위한 라이브러리,커널 등을 전부 포함 하기 때문에 가상 머신을 배포하기 위한 이미지로 만들었을때 이미지의 크기 또한 커집니다.


가상 머신은 완벽한 운영체제를 생성할 수 있다는 장점은 있지만 일반 호스트에 비해 성능 손실이 있으며, 용량이 커 가상머신 이미지를 애플리케이션으로 배포하기는 부담스럽다는 단점이 있습니다.

  • 성능손실, 배포할 때 용량이큼

Docker Container

Docker Container




Docker Container 는 가상화된 공간을 생성하기 위해 리눅스 자체 기능인 chroot, 네임스페이스(namespace), cgroup을 사용 함으로써 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실이 거의 없습니다.