본문 바로가기
Virtualization

Virtual Machine(VM) VS Docker

by 몰라닉네임 2024. 2. 4.

들어가기 전 

 Docker를 들어가기 전 다시 알아야 할 내용 때문에 이전 글들을 작성했다. 

 

 

Virtual Machine(VM) VS Docker 

 

Virtual Machine

 Virtual Machine 이란 실제 컴퓨터의 가상 표현 또는 에뮬레이션으로 이를 이용하며 하나의 물리적 시스템에서 각각 자체 운영체제(OS)와 애플리케이션을 지닌 다수의 가상 머신을 만들 수 있다.

 

 VM 은 하이퍼바이저 위에서 동작하는 독립적인 운영환경으로 하이퍼바이저에 의해 하드웨어의 가상화를 받아 독립적인 공간 내에서 OS + 애플리케이션을 설치하여 운영하게 됨.

 

 

VM 정리 

- 가상 머신은 하이퍼바이저를 통해 여러개의 운영체제가 생성되고 관리됨. (Guest OS)

- 시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 하이퍼바이저를 거치므로 성능 손실이 큼 

- 가상 머신은 Guest OS를 사용하기 위한 라이브러리, 커널 등을 포함하므로, 배포할 때 용량이 큼

 

Docker 

 Docker는 컨테이너의 표준으로 자리 잡은 서비스

 도커는 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트임

 

Docker는 컨테이너 기반의 가상화 기술임. 기존에는 하드웨어를 가상화하였기 때문에 Host OS 위에 Guest OS를 설치해야 했습니다. 하지만 이러한 방식은 상당히 무겁고 느려 한계가 많이 있음.

그래서 이를 극복하고자 프로세스를 격리시킨 컨테이너를 통해 가상화를 하는 Docker(도커)와 같은 기술들이 등장하게 되었고, 도커를 통해 구동되는 컨테이너를 관리하기 위한 Kubernates(쿠버네티스)가 등장하게 됨

 

 

 

- 도커 컨테이너는 가상화된 공간을 생성할 때 리눅스 자체 기능을 사용하여 프로세스 단위의 격리 환경을 만드므로 성능 손실이 없음

- 가상 머신과 달리 커널을 공유해서 사용하므로 컨테이너에는 라이브러리 및 실행 파일만 있어 용량이 작음

- 이와 같은 이유로 컨테이너를 이미지로 만들었을 때, 배포하는 시간이 가상 머신에 비해 빠르며, 사용할 때의 성능 손실 또한 거의 없음 

 

 

참고

- https://seosh817.tistory.com/345

- https://www.docker.com/resources/what-container/

'Virtualization' 카테고리의 다른 글

가상 머신 VM (Virtual Machine)  (0) 2024.02.04
가상화와 하이퍼바이저 (Hypervisor)  (1) 2024.02.04