가상 머신(Virtual Marchine, VM)
- 가상 머신에 대한 정의를 위키백과에서는 다음과 같이 말한다. '컴퓨팅 환경을 소프트웨어로 구현한 것이고, 가상머신상에서 운영 체제나 응용프로그램을 설치 및 실행할 수 있다.' 이해를 돕기 위해 대표적으로 'VMware' 라는 프로그램이 있는데 우리가 보통 컴퓨터 전원을 키면 Windows(OS)가 실행되고 VMware를 실행하면 가상 머신상에 Linux와 같은 또 다른 운영체제를 설치하여 실행할 수 있게 되는 것이다.
도커(Docker)
- 도커에 대한 정의를 위키백과에서는 다음과 같이 말한다. '리눅스의 응용 프로그램들을 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트이다.' 도커를 이해하기 위해 알아야할 핵심은 '격리 기술'과 '컨테이너'이다.
도커에 대해 자세히 설명하기 전에 History를 먼저 알아보면 도커는 2013년 3월 오픈 소스로 첫 출시되었고, VM은 1960년대에부터 사용되었으니 도커는 VM의 단점을 보완하기 위해 개발된 기술이라고 예상할 수 있다.
그렇다면 VM의 단점은 무엇일까?
- VM의 단점은 하이퍼바이저(Hypervisor)기술에서 알 수 있다. 하이퍼바이저는 단일 하드웨어에서 여러 가상 머신을 사용할 수 있는 프로그램이다. 단일 하드웨어에서 자원을 할당 받아 여러 가상 머신을 사용하다 보니 성능이 떨어지고 용량의 부담이 가는 단점이 있다. 이를 보완한 것이 바로 Docker이다.
도커(Docker)와 VM(Vertual Machine)의 차이
위 이미지를 보면 VM의 큰 비중을 차지하고 있는 Guest OS를 Docker에서 제거되면서 더 경량화된 프로세스를 가진 것으로 보인다. 또 도커는 컨테이너 기술을 사용하고 있어 격리된 환경에서 OS나 응용프로그램을 사용할 수 있기 때문에 이미지의 실행 및 배포가 빠르다. 많은 기업에서 도커를 쓰는 이유이기도 하다. 그리고 이것이 가장 큰 차이이지 않을까 생각한다.