컨테이너와 **가상 머신(VM)**은 모두 격리된 환경을 제공하지만, 작동 방식이 다릅니다. 컨테이너는 호스트의 OS 커널을 공유(가벼움)하는 반면, VM은 가상화된 하드웨어 위에서 완전한 게스트 OS를 실행(무거움)합니다. 이 차이를 이해하면 컨테이너가 왜 그렇게 효율적인지 설명할 수 있습니다.
핵심 아키텍처 차이
가상 머신(VM): 컨테이너:
┌─────────────────┐ ┌─────────────────┐
│ 앱 + 라이브러리 │ │ 앱 + 라이브러리 │
│ 게스트 OS(전체) │ ← 각자 전체 OS │ (커널 공유) │ ← 게스트 OS 없음
├─────────────────┤ ├─────────────────┤
│ Hypervisor │ │ Docker Engine │
├─────────────────┤ ├─────────────────┤
│ 호스트 OS │ │ 호스트 OS │
│ 하드웨어 │ │ 하드웨어 │
└─────────────────┘ └─────────────────┘
은 하드웨어를 가상화하고 hypervisor를 통해 (자체 커널을 가진) 를 실행합니다. 는 을 공유하고 애플리케이션만 격리합니다 — 컨테이너마다 별도의 OS가 없습니다.
