Containers e máquinas virtuais (VMs) fornecem ambientes isolados, mas funcionam de forma diferente: containers compartilham o kernel do SO do host (leve), enquanto VMs executam um SO convidado completo em hardware virtualizado (mais pesado). Compreender a diferença explica por que containers são tão eficientes.
A diferença arquitetural fundamental
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 │
└─────────────────┘ └─────────────────┘
