Docker 는 오픈소스 프로젝트 인다.
Go 언어로 작성된 리눅스 컨테이너 런타임 가상화 오픈 플랫폼으로 리눅스 컨테이너 기술을 자동화 하여 관리 및 유지보스를 용이하게 해준다.
리눅스 컨테이너 기술은 가상화 기술과 비슷한 기술이다. 가상화 기술은 하이퍼바이저란 기술이 반드시 있어야 하며 가상화 기술을 통해 갖춰진 가상화 환경은 호스트를 공유하여 그 위로 각종 OS를 운영하게 해주는 기술이다.
Docker는 하이퍼바이저와 달리 별도 OS를 두지 않고 호스트의 커널을 바로 사용한다.
때문에 리눅스 커널이 작동되는 곳이라면 어느곳에서든 작동한다. 하이퍼바이저 대신 도커 엔진이 올라가는 호스트 와 여러 어플리케이션을 연결해주는 역할을 한다.
따라서 Docker를 사용하면 가상화보다는 내부에서 더 작은 일을 처리하고 어플리케이션을 빠르게 효율적으로 실행할 수 있다.
가상머신은 수많은 GB에 해당하는 어플리케이션 바이너리 및 라이브러리 등 OS를 포함하고 있다.
VM이 생성될때 마다 PC 어플리케이션 공간에 OS가 구동되면 이는 즉 속도와 연관성이 매우 높다.