가상 머신과 도커

Oneik·2024년 7월 21일
0

가상 머신(Virtual Machine)

가상 머신이란, 컴퓨터 안에서 소프트웨어로 만들어진 가상의 컴퓨터이다. 이런 가상의 컴퓨터가 필요한 이유는 뭘까?

예를 들어, 호스트 컴퓨터의 운영 체제(Host OS)는 Linux 기반인데, Windows에서만 동작하는 게임이 존재한다고 해보자. 이 게임을 실행하기 위해 매번 Linux를 삭제하고 Windows를 설치한다면, 많은 시간과 노력이 낭비될 것이다.

이런 문제를 해결하기 위해 탄생한 것이 가상 머신이다. 가상 머신을 활용하면, 하나의 물리적 컴퓨터에서 여러 운영 체제를 동시에 운영할 수 있게 된다.

따라서 Linux Host OS 위에서 Windows 가상 머신을 실행하여, 각 OS 환경에서만 동작하는 프로그램들을 하나의 컴퓨터에서 편리하게 사용할 수 있다.

하이퍼바이저(Hypervisor)
가상 머신(VM)을 생성하고 관리하는 소프트웨어다. 물리적 하드웨어를 가상화하여 각 가상 머신에 가상 하드웨어를 제공한다.

가상 머신의 문제점

가상 머신 기술은 위처럼 많은 이점을 제공하지만, 동시에 큰 단점도 가지고 있다.

물리적 하드웨어에 접근하기 위해 추가적인 소프트웨어 계층이 필요하다. 각 가상 머신은 Guest OS를 가지며, 하이퍼바이저를 통해 Host OS와 통신하여 하드웨어 자원을 활용하기 때문에, 성능 저하가 발생한다.

또한, 각 가상 머신(VM)은 독립적인 운영체제를 실행하므로, 전체적인 메모리 사용량이 증가한다.

도커(Docker)

도커(Docker)는 컨테이너 기반 가상화 플랫폼으로, 가상 머신의 한계를 극복하고 애플리케이션 배포와 실행을 획기적으로 간소화했다.

기존 가상 머신과 달리, 도커 컨테이너는 완전한 운영체제를 포함하지 않는다. 대신, 애플리케이션 실행에 필요한 최소한의 구성 요소인 바이너리, 라이브러리, 설정 파일만을 하나의 패키지로 묶어 제공한다.

도커의 핵심인 도커 엔진은 이러한 컨테이너들이 Host OS의 커널을 공유하여 물리적 하드웨어와 효율적으로 통신할 수 있게 한다. 이 커널 공유 방식은 메모리 사용량을 크게 줄이고, 전체적인 시스템 활용을 최적화한다.

또한, 컨테이너는 운영체제를 부팅할 필요가 없어 가상 머신에 비해 훨씬 빠르게 시작된다.

참고

20분 만에 전공자처럼 도커, 가상화 이해하기!
도커 공식 홈페이지

profile
초보 개발자의 블로그입니다

0개의 댓글

관련 채용 정보