가상머신과 도커

GGUKI·2022년 9월 27일
0

안녕하세요. 도커와 가상머신 비교 글을 작성해보려고 합니다.

가상머신 (VM - virtual machine)

가상머신이 없고 하나의 OS만 있다면 하나의 컴퓨터로 더 다양한 어플리케이션을 활용할 기회가 사라지는 것이다. 가상 머신이 없던 시절에는 내 노트북이 윈도우면 리눅스를 사용하기 위해서는 다른 컴퓨터가 필요했을 것이다. 그러나 가상머신이 등장하면서 하나의 컴퓨터에 가상의 컴퓨터를 설치해서 여러 개의 OS를 사용할 수 있게 되었다. 그 중 하이퍼바이저 기반의 가상화가 가장 많이 이용되었다. 하이퍼바이저는 논리적으로 분할된 공간에서 VM 이라는 독립된 가상환경을 만들고 호스트 시스템에서 VM에 깔린 게스트OS를 구동 및 모니터링하는 역할을 한다. 간단히 정리해 본다면,

호스트 시스템 : 서버의 OS
게스트 OS : 가상머신의 OS
하이퍼바이저 : 게스트OS를 구동 및 모니터링

*OS는 소프트웨어 포스팅에서 다뤘다.

도커 (Docker)

가상머신과 도커의 가장 큰 차이는 게스트OS의 유뮤이다.

가상머신에는 호스트OS 말고도 게스트OS가 깔리게 된다. (윈도우가 호스트로 깔린 컴퓨터에서 우분투를 사용하고 싶을 때 까는 것과 같다.) 가상머신의 경우는 새로운 게스트OS에 자원을 할당하게 됨으로 자원이 고갈되거나 한 OS에 할당되는 자원이 적어지게 된다. 그러면 효율성이 적어지게 되고 무거워지게 될 것이다.

그런데 도커의 컨테이너는 게스트OS가 없다. 도커는 가상머신 자원의 비효율성 문제를 해결해 게스트OS가 아니라 호스트OS내에서 필요한 패키지만 존재한다면 컨테이너 구동이 가능하다.


위의 사진이 도커를 가장 잘 설명한 그림이라고 한다. VM의 경우는 하이퍼바이저 위에 게스트 OS가 설치되어있다. 예시를 들자면 원래 윈도우가 깔린 컴퓨터에 리눅스라는 게스트 OS를 설치한 것이다. 그런데 도커의 경우는 게스트OS가 설치되어있지 않는다. 그 이유는 도커의 컨테이너는 호스트OS의 커널을 공유하기 때문이다.

출처)
https://velog.io/@kdaeyeop/%EB%8F%84%EC%BB%A4-Docker-%EC%99%80-VM%EC%9D%98-%EC%B0%A8%EC%9D%B4

profile
신기술 조아

0개의 댓글