Container e macchine virtuali (VM) forniscono entrambi ambienti isolati, ma funzionano diversamente: i container condividono il kernel del sistema operativo dell'host (leggeri), mentre le VM eseguono un sistema operativo guest completo su hardware virtualizzato (più pesanti). Comprendere la differenza spiega perché i container sono così efficienti.
Perché è importante
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 │
└─────────────────┘ └─────────────────┘
