Containers και virtual machines (VMs) παρέχουν και τα δύο απομονωμένα περιβάλλοντα, αλλά λειτουργούν διαφορετικά: τα containers μοιράζονται το kernel του λειτουργικού συστήματος του host (ελαφρύ), ενώ τα VMs εκτελούν ένα πλήρες λειτουργικό σύστημα επισκέπτη σε εικονικό υλικό (βαρύτερο). Η κατανόηση της διαφοράς εξηγεί γιατί τα containers είναι τόσο αποδοτικά.
Η βασική αρχιτεκτονική διαφορά
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 │
└─────────────────┘ └─────────────────┘
