कन्टेनरहरू र भर्चुअल मेसिनहरू (VMs) दुवैले पृथक वातावरण प्रदान गर्दछन्, तर तिनीहरू फरक तरिकाले काम गर्दछन्: कन्टेनरहरूले होस्टको OS kernel साझेदारी गर्दछन् (हल्का तौल), जबकि VMs ले hypervisor को माध्यमबाट virtualized hardware मा पूर्ण guest OS चलाउदछन् (गहिरो तौल)। यस भिन्नता बुझ्नले कन्टेनरहरू किन यति कुशल छन् भनेर व्याख्या गर्दछ।
मुख्य आर्किटेक्चरल भिन्नता
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 │
└─────────────────┘ └─────────────────┘
