컨테이너와 VM의 비교

김수영·2022년 4월 18일
0

Docker

목록 보기
2/4

컨테이너 기술과 가상 머신(VM)은 둘 다 프로세스, 네트워크, 파일 시스템을 격리할 수 있다는 장점을 가지고 있다.

그러나 작동원리는 많이 다르다.

VM을 사용하게 되면 많은 컴퓨팅 자원을 필요로 한다.

이에 비해,
도커는 한 호스트 컴퓨터에 여러 개의 컨테이너를 띄워도 크게 컴퓨터에 무리가 가지 않는다.

또한 도커 이미지는 (운영체제 이미지도 존재하지만) 보통 애플리케이션 단위로 만들어져 있다.

반면 VM을 사용하기 위해서는 해당 VM 위에 운영체제(OS, Operating System)를
설치해야 하는 과정을 반드시 거치게 되어 있다.

각 컨테이너는
호스트 OS의 커널(Kernel, 시스템 콜과 같이 OS의 핵심 기능을 구현한 프로그램)을 공유한다.

도커는 애플리케이션을 컨테이너화해서 실행하는 데에 주 목적이 있으므로,
특별히 컨테이너에 OS를 올려서 사용하지 않는다.

호스트 OS의 입장에서 컨테이너 하나는 프로세스 하나에 불과하다.

윈도우나 macOS용 도커를 살펴보면 컨테이너 안쪽은 리눅스로 작동된다. 윈도우나 macOS는 리눅스가 아닌데, 어떻게 컨테이너 안에서 리눅스 기반으로 작동하는 것일까?

윈도우나 macOS는 근본적으로 리눅스 커널을 쓰고 있지 않으므로,
해당 운영체제의 경우 리눅스 커널을 VM의 형태로 실행시키는
하이퍼바이저(Hyper-V, LinuxKit, HyperKit)를 자체적으로 구동된다.

윈도우용 또는 macOS용 도커는 하이퍼바이저 위의 리눅스 커널을 사용하는 것이다.

profile
기술과 인문학의 교차점

0개의 댓글