Container(컨테이너)를 이해하기 위해서는 Virtual Machine(가상머신, VM) 개념을 알고 있는것이 좋을 것 같다. 


컨테이너 개념 및 도입된 이유를 알기 위해서는 VM에 대한 특징부터 살펴보는 것이 좋을 것 같다. 

1. 개념 구성도


개념 구성도부터 살펴보도록 하겠다.



 

 

 VM 개념도

Container 개념도 




출처 : https://www.docker.com/what-docker


Virtual Machine 은 구성도는 다음과 같다. 



하드웨어 가상화

소프트웨어로 구현된 하드웨어

소프트웨어로 구현된 하드웨어 그 위에 OS를 설치하고, 그 위에 소프트웨어를 설치함으로써 무겁고 느린 단점

위 단점으로 반가상화 기술방식의 Xen이 등장하였지만, 성능문제는 해결되지 못함

예 : VMWare, VirtualBox 등



Container:

리눅스에서 하드웨어 가상화와 OS설치를 하지 않고 단순히 프로세스를 단독으로 격리시키는 기술 컨테이너라는 기술이 등장

하드웨어 및 OS 계층을 두지 않고 프로세스만 격리하므로 실제 그냥 앱을 실행하는 경우와 거의 차이가 보이지 않을 정도로 Virtual Machine 에 비해 성능문제가 해결됨

리눅스 OS에서 지원하는 기술로 LXC(Linux Container)라는 시스템 레벨의 컨테이너 기술을 제공

초기 Docker는 LXC 기술을 채용했으나, 0.9버전 이후에는 libcontainer라는 자체 컨테이너 사용

+ Recent posts