도커(Docker)는 비교적 최근(2013)년에 등장한 컨테이너 기반의 가상화 도구다.
흔히 가상 머신 기술과 비교 하는데, 장/단점을 기준으로 이들의 차이점을 살펴보자.
가상머신은 격리된 환경을 구축한다. 하드웨어를 추상화 하기 때문에, 다양한 운영체제들을 손쉽게 올릴 수 있다. 반면 하드웨어 추상에 드는 비용과 완전한 운영체제가 올라가기 때문에 비용이 많이 든다는 단점이 있다.
도커는 경량화한 가상화 방식이다. OS 자원을 호스트와 공유하며, 사실상 프로세스처럼 작동한다. 하드웨어를 추상화 하지 않기 때문에, 성능면에서 큰 이득을 얻을 수 있다.
운영체제 입장에서 도커는 프로세스다. 실행속도도 매우 빠르다.
도커는 리눅스의 컨테이너 기술인 lxc(LinuX Containers)을 기반으로 하고 있다. 따라서 리눅스에서만 사용할 수 있다. 맥의 경우 경량화한 리눅스 운영체제를 (virtualbox 기반)VM 형식으로 띄운 다음, docker를 올리는 방식으로 지원할 것이라고 언급하고 있다. 하지만 아무리 경량이라고 해도 리눅스 도커의 성능과 효율을 기대하기는 무리일 것 같다. 가상화 인프라 개발에서 이런 짓을 하는 건 의미 없고, 개발 환경을 꾸미는데는 많은 잇점이 있다.
리눅스 운영체제의 자원을 공유하기 때문에, 다른 운영체제를 실행 할 수는 없다. KVM 기반으로 구성할 경우 리눅스든 윈도우즈든 자유롭게 실행 할 수 있는데 반해, 도커 기반으로 할 경우 도커 운영체제만을 운영할 수 있다. 사실상 리눅스 운영체제만 사용할 수 있다는 것. 클라우드 인프라를 만들려고 하면, 윈도우와 리눅스 인프라를 따로 구축해야 하기 때문에 애매모호 하다.(운영이 지저분해 질 수 있지만, 이걸 감안해도 도커를 사용해서 얻는 이득으로 단점을 커버할 수 있다.)
Docker
기본 문서
활용 문서
하위 문서
Recent Posts
Archive Posts
Tags