가상화 기술은 Docker를 이해하는 핵심입니다. 이 글에서는 하이퍼바이저 기반 가상화와 컨테이너 기반 가상화의 차이를 비교하며, VM과 컨테이너 기술의 특징을 설명합니다
가상화 개요 – 하이퍼바이저 vs 컨테이너 차이
목차
1. 가상화란?
가상화(Virtualization)는 물리적인 컴퓨터 자원을 논리적으로 나눠 여러 독립 환경을 실행하는 기술입니다.
하나의 물리 서버에서 여러 운영 체제를 동시에 실행할 수 있으며, 비용 절감과 효율적인 리소스 활용이 가능합니다.
주요 방식으로는 서버, 네트워크, 스토리지, 애플리케이션 가상화가 있습니다.
2. 하이퍼바이저(Hypervisor) 기반 가상화
하이퍼바이저(Hypervisor)는 VM(가상 머신)을 실행시키는 핵심 소프트웨어입니다.
물리 리소스를 분리하고 각 가상 머신에 독립된 환경을 제공합니다.
하이퍼바이저는 실행 위치에 따라 두 가지 타입으로 나뉩니다.
◆ Type 1 (native, bare-metal)
- 하이퍼바이저가 하드웨어 바로 위에서 실행되는 방식입니다.
- 하이퍼바이저가 하드웨어를 직접 제어하기 때문에 자원을 효율적으로 사용할 수 있고,
- 별도의 호스트OS가 없으므로 오버헤드가 적지만 여러 하드웨어 드라이버를 세팅해야 하므로 설치가 어렵습니다.
- 대표적으로는 Xen, 마이크로소프트 Hyper-V, KVM이 네이티브 하이퍼바이저에 속합니다.
- 네이티브형 하이퍼바이저는 전가상화, 반가상화 방식으로 세분화할 수 있습니다.
1) 전 가상화(Full Virtualization)
- 전 가상화는 하드웨어를 모두 가상화하는 방식입니다.
- 게스트 OS가 하이퍼바이저에게 하드웨어 시스템 제어를 요구하면, 하이퍼바이저는 하드웨어에게 해당 요구 사항을 전달합니다.
2) 반가상화(Para Virtualization)
- 반 가상화 방식은 하드웨어를 완전히 가상화하지 않고,게스트 OS의 커널을 일부 수정해 하드웨어와 인터랙션할 수 있도록 합니다.
- OS를 수정해야 하므로 게스트 OS가 윈도우일 경우 별도의 Tool을 이용해야 해서 번거로움이 있습니다.
- 게스트 OS는 Hyper Call이라는 명령어를 통해 하드웨어에 필요한 자원을 바로 하이퍼바이저에 전달하고, 하이퍼바이저는 바로 하드웨어를 제어합니다.
◆ Type 2 (hosted)
- 호스트형 하이퍼바이저는 일반적인 소프트웨어처럼 호스트 OS 위에서 실행됩니다.
- 하드웨어 자원을 VM 내부의 게스트 OS에 에뮬레이트 하기 때문에 네이티브 방식에 비해 오버헤드가 큽니다.
- 게스트 OS 종류에 대한 제약이 없고 데스크톱뿐 아니라 노트북에서도 운영할 수 있습니다.
- 대표적으로는 VMware server, VMware Workstation, Virtual box가 있습니다.
3. 컨테이너(Container) 기반 가상화
컨테이너는 운영체제 커널을 공유하면서도 각 애플리케이션에 독립 실행 환경을 제공하는 기술입니다.
VM보다 가볍고 빠르며, 독립된 파일 시스템과 네트워크 공간을 제공합니다.
Docker는 대표적인 컨테이너 기술입니다.
4. VM과 Container 비교
항목 | 컨테이너(Container) | 가산머신(VM) |
가상화 수준 | 운영체제 레벨의 가상화 기술 | 하드웨어 레벨의 가상화 기술 |
운영 방식 | OS 커널 공유, 독립적인 프로세스로 실행 | 각 VM마다 독립적인 OS 포함 |
리소스 사용 | 가벼움 (MB 단위) | 무거움 (GB 단위) |
부팅 속도 | 빠름 (초 단위) | 느림 (분 단위) |
격리 수준 | 프로세스 단위 격리 (보안이 상대적으로 낮음) | OS 단위 격리 (보안이 강함) |
실행 가능한 애플리케이션 수 | 많음 (경량) | 상대적으로 적음 (무거움) |
대표 기술 | Docker, Kubernetes | VMware, KVM, Hyper-V |
가상화의 개념과 하이퍼바이저, 컨테이너 기술을 비교했습니다. Docker를 이해하려면 컨테이너 기반 가상화가 무엇인지 이해하는 것이 중요합니다. VM은 보안과 격리성이 강하지만 무겁고 느리며, 컨테이너는 가볍고 빠르지만 비교적 낮은 격리 수준을 갖습니다.
관련 글 링크
What is a Container? | Docker
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. A Docker container image is a lightweight, standalone, executable package of s
www.docker.com
가상화란 무엇인가요? - 클라우드 컴퓨팅 가상화 설명 - AWS
클라우드 컴퓨팅은 사용량에 따른 요금으로 인터넷을 통해 온디맨드로 컴퓨팅 리소스를 제공하는 것을 말합니다. 물리적 데이터 센터를 구매, 소유 및 유지 관리하는 대신, 필요할 때 클라우드
aws.amazon.com
가상화란? | IBM
가상화를 통해 단일 컴퓨터의 하드웨어 리소스를 가상 머신(VM)이라고 하는 여러 개의 가상 컴퓨터로 나눌 수 있습니다.
www.ibm.com
'1.시스템&인프라 > Docker' 카테고리의 다른 글
5.실무에서 자주 쓰는 Docker 명령어 정리(예제 + 설명) (0) | 2025.03.27 |
---|---|
4.Docker와 방화벽(UFW, firewalld) 설정 시 주의사항과 해결 방법 (0) | 2025.03.27 |
3.Ubuntu에 Docker 설치 및 sudo 없이 사용하기 (0) | 2025.03.27 |
2.Docker 개념과 아키텍처 정리: VM과 비교 (0) | 2025.03.27 |