Container và máy ảo (VM) đều cung cấp các môi trường cô lập, nhưng chúng hoạt động khác nhau: container chia sẻ kernel OS của host (nhẹ), trong khi VM chạy một guest OS đầy đủ trên phần cứng được ảo hóa (nặng hơn). Hiểu sự khác biệt giải thích tại sao container lại hiệu quả đến vậy.
Sự khác biệt kiến trúc cốt lõi
MÁY ẢO: CONTAINER:
┌─────────────────┐ ┌─────────────────┐
│ App + Libs │ │ App + Libs │
│ GUEST OS (full)│ ← full OS mỗi │ (shares kernel) │ ← không guest OS
├─────────────────┤ ├─────────────────┤
│ Hypervisor │ │ Docker Engine │
├─────────────────┤ ├─────────────────┤
│ Host OS │ │ Host OS │
│ Hardware │ │ Hardware │
└─────────────────┘ └─────────────────┘
