ทั้ง container และ virtual machine (VM) ต่างให้สภาพแวดล้อมที่แยกตัว (isolated) แต่ทำงานต่างกัน: container แชร์ OS kernel ของ host (เบา) ในขณะที่ VM รัน guest OS เต็มรูปแบบบนฮาร์ดแวร์ที่ถูกจำลอง (หนักกว่า) การเข้าใจความแตกต่างนี้อธิบายได้ว่าทำไม container จึงมีประสิทธิภาพสูงมาก
ความแตกต่างเชิงสถาปัตยกรรมที่สำคัญ
VIRTUAL MACHINE: CONTAINER:
┌─────────────────┐ ┌─────────────────┐
│ App + Libs │ │ App + Libs │
│ GUEST OS (full)│ ← full OS each │ (shares kernel) │ ← no guest OS
├─────────────────┤ ├─────────────────┤
│ Hypervisor │ │ Docker Engine │
├─────────────────┤ ├─────────────────┤
│ Host OS │ │ Host OS │
│ Hardware │ │ Hardware │
└─────────────────┘ └─────────────────┘
