Containers और virtual machines (VMs) दोनों isolated environments प्रदान करते हैं, लेकिन ये अलग तरीके से काम करते हैं: containers host के OS kernel को साझा करते हैं (lightweight), जबकि VMs virtualized hardware पर एक पूरा guest OS चलाते हैं (भारी)। अंतर समझने से यह स्पष्ट होता है कि containers इतने efficient क्यों हैं।
मुख्य architectural अंतर
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 │
└─────────────────┘ └─────────────────┘
