"Docker"는 Linux® 컨테이너를 만들고 사용할 수 있도록 하는 가상화 기술 오픈소스 프로젝트입니다. Docker를 사용하면 물리적인 서버 인프라 환경에서 완벽하게 분리된 애플리케이션 환경을 구축할 수 있어 코드 실행과 환경설정 시간이 줄어 소프트웨어를 빠르게 제공할 수 있습니다. Docker는 오픈소스로 커뮤니티 사용자에게 무료로 제공되며 Docker Inc.는 Docker 커뮤니티의 활동에 기반을 두고 엔터프라이즈 고객을 위한 향상되고 강화된 기술을 지원합니다.

 

가상화 머신과 도커 컨테이너 비교

가상화 머신은 하이퍼바이저를 이용하여 단일 호스트 컴퓨터의 리소스를 가상으로 공유하여 호스트 컴퓨터가 여러 게스트 가상 머신을 지원할 수 있도록 합니다. 각 가상머신에 Ubuntu, CentOS와 같은 운영체제가 설치되고 각 게스트 운영체제는 다른 게스트 운영체제와는 완전히 독립된 공간과 시스템 리소스를 할당받아 사용합니다. 대표적인 가상화 툴로 VirtualBox, VMware 등이 있습니다.

 

가상머신은 하이퍼바이저를 반드시 거쳐야 하기 때문에 일반 호스트에 비해 성능 손실이 발생될 수 밖에 없습니다. 그리고 게스트 운영체제를 사용하기 위한 커널, 라이브러리를 포함하기 때문에 가상 머신을 배포하기 위한 이미지로 만들었을 때 크기 또한 커진다는 단점이 있습니다. 즉, 가상 머신은 완전히 새로운 운영체제를 생성할 수 있다는 장점이 있지만 일반 호스트에 비해 성능 손실이 있고 대용량의 이미지 파일이 만들어지기 때문에 배포하기에 부담스럽습니다.

 

Comparing Containers and Virtual Machines
https://www.docker.com/resources/what-container
Comparing Containers and Virtual Machines 1

 

도커 컨테이너는 가상화된 공간을 생성하기 위해 운영체제를 따로 설치하여 분리하는 방식이 아니라 chroot(Change  Root Directory), Linux namespace, cgroup(control group)과 같은 리눅스 커널 기능을 사용하여 프로세스 단위의 격리 환경을 만들기 때문에 성능 손실이 거의 없습니다.

 

컨테이너에 필요한 운영체제는 호스트에서 공유해 사용하고 컨테이너 안에는 컨테이너 구동에 필요한 라이브러리와 실행 파일만 존재하기 때문에 컨테이너를 이미지로 만들었을 때 이미지의 용량 또한 가상 머신에 비해 줄어들게 됩니다.


1 출처 : https://www.docker.com/resources/what-container

'Dev Story > cloud' 카테고리의 다른 글

[Docker] 도커 아키텍처  (0) 2022.02.13


AND