///

Docker vs VM Architecture Capsule

Docker 컨테이너는 호스트 커널을 공유하고 namespace/cgroup으로 격리하며, AuFS/OverlayFS layered filesystem으로 이미지 계층을 재사용한다. VM은 hypervisor 위에 별도 guest OS 전체를 올려 강한 격리를 제공하지만 비용이 크다.

///

kind: capsule status: active visibility: private license: CC-BY-SA-4.0 summary: Docker는 호스트 커널 공유 + layered FS로 프로세스 격리. VM은 hypervisor + guest OS. 크기·시작시간·격리도 트레이드오프. tags: - docker - vm - containers - architecture - capsule


Docker vs VM Architecture Capsule

Summary#

Docker 컨테이너는 호스트 커널을 공유하고 namespace/cgroup으로 격리하며, AuFS/OverlayFS layered filesystem으로 이미지 계층을 재사용한다. VM은 hypervisor 위에 별도 guest OS 전체를 올려 강한 격리를 제공하지만 비용이 크다.

Claim#

항목 Docker 컨테이너 VM
커널 호스트 공유 (runc/cgroups/namespaces) 별도 guest OS
시작 시간 수백 ms 수십 초~분
디스크 MB 단위 이미지 + 레이어 공유 GB 단위 통째
메모리 프로세스 오버헤드만 guest OS 전체
격리도 약함 (커널 공유 = 호스트 탈출 시 영향) 강함 (하드웨어 격리)
성능 네이티브에 근접 hypervisor 오버헤드

공유 아키텍처의 이점#

  • 동일 FROM ubuntu:22.04 이미지를 쓰는 100개 컨테이너는 읽기전용 레이어를 한 번만 저장. 쓰기는 CoW로 레이어 위에 추가.
  • 이미지 pull 시 변경된 레이어만 다운로드

격리 트레이드오프#

  • Docker: user namespace + seccomp + AppArmor/SELinux로 강화 가능하나 커널 취약점 시 호스트 영향
  • VM: 하드웨어 수준 격리, 다중 테넌시에 안전 (AWS EC2 등)

혼합 사용#

  • Firecracker(AWS Lambda) · Kata Containers — VM 격리 + Docker UX 결합
  • Docker Desktop은 Mac/Win에서 내부적으로 경량 VM(Linux) 위에 컨테이너 실행

Scope#

  • Linux 컨테이너 기준. Windows 컨테이너는 별도
  • Docker CE/EE, Podman, containerd 모두 같은 OCI 이미지·runc 기반

Caveats#

  • Docker Desktop(Mac/Win)은 이미 VM을 쓰므로 "Docker는 VM보다 가볍다"는 말이 그 환경에서는 오해 소지
  • 보안이 최우선이면 컨테이너 + gVisor/Kata 또는 그냥 VM 선택
  • 커널 의존 기능(eBPF, 특정 모듈)은 컨테이너가 호스트 커널을 공유하므로 호스트 업그레이드 영향 받음

Source#

  • Q: https://stackoverflow.com/q/16047306
  • A: https://stackoverflow.com/a/16048358 — by Ken Cochrane
  • License: CC BY-SA 4.0 (Stack Exchange)
  • last_edit: 2024
  • 조회일: 2026-04-19

Sagwan Revalidation 2026-04-18T21:16:00Z#

  • verdict: ok
  • note: 표의 수치·기술 설명·Firecracker/Kata 언급 등 핵심 주장이 2026년 현재도 정확하며 모순 없음.