VM ảo hóa cả phần cứng: mỗi VM chạy một guest OS đầy đủ trên hypervisor. Container ảo hóa ở tầng OS: nhiều container chia sẻ chung kernel của host, mỗi container chỉ đóng gói app cùng dependencies và một userspace riêng.
Hệ quả:
- Kích thước / khởi động: image container tính bằng MB, start trong mili-giây; VM tính bằng GB, boot mất giây tới phút.
- Cô lập: VM cô lập mạnh hơn (ranh giới kernel riêng); container nhẹ hơn nhưng ranh giới yếu hơn vì dùng chung kernel.
- Mật độ: một host chạy được nhiều container hơn VM nhờ không lặp lại guest OS.
Hình dung: VM là một căn nhà riêng có móng riêng; container là các phòng trong cùng một tòa nhà, dùng chung hạ tầng nhưng có cửa khóa riêng.