컨테이너(?) :

 소프트웨어가 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 이동되었을 때 어떻게 안정적으로 운영하느냐의 문제를 해결하는 솔루션이다.


가상화 vs 도커

가상화 기술을 사용하면 이동되는 패키지가 가상머신이 되며, 여기에는 전체 운영체제와 애플리케이션이 모두 포함된다. 

세 개의 가상머신을 구동하는 물리 서버는 하이퍼바이저와 그 위에서 구동되는 세 개의 별도 운영체제를 가지게 된다.

반면 단일 운영체제를 구동하는 도커는 세 개의 컨테이너에 담긴 애플리케이션을 구동하는 서버과 각각의 컨테이너가 

운영체제 커널을 다른 컨테이너와 공유한다. 

운영체제의 공유 부분은 읽기 전용인 반면, 각각의 컨테이너에는 기록을 위한 자체적 마운트(예를 들어 컨테이너에 접속하는 방법)가 있다. 

이는 컨테이너가 가상머신보다 훨씬 가볍고 더 적은 자원을 사용한다는 의미다.


가상화(XEN, KVM)와 도커



컨테이너의 단점

1. Host OS에 종속적

리눅스 컨테이너는 OS에서 Linux Kernel이 관리하는 것이므로, 당연히 Linux 이외의 다른 OS에서는 동작하지 않으며, 

컨테이너 환경에서도 다른 OS를 설치할 수 없다.

ex) Ubuntu Host OS에서 컨테이너에 CentOS를 설치한다고 해도 실행중인 커널은 Ubuntu 커널이다.


2. 컨테이너별 커널구성이 불가능

그러나 컨테이너마다 다른 커널 작업을 수행 할 수는 없습니다. 커널의 기능으로 구성되는 환경이기 때문에 당연히 

전체 컨테이너에서 보이는 커널은 동일합니다.

따라서 컨테이너에서 보이는 장치나 로드되는 커널 모듈은 모두 동일합니다.

+ Recent posts