Virtualization vs. Containerization
Virtualization(虛擬化) vs. Containerization(容器化)

虛擬化:硬體層級隔離
- 在主機硬體上跑一個 Hypervisor(像 VMware ESXi、Hyper-V、KVM)
- 再由 Hypervisor 建立多個 VM(虛擬機)
⇒ 每個 VM 內都有 完整的作業系統(包含 kernel、drivers、libraries)
- 優點:隔離性強、跨 OS 可共存(如同時跑 Windows + Linux)。
- 缺點:很重、啟動慢(因為要 boot 整個 OS),資源使用高。
VM = 在一台電腦裡跑很多台「完整電腦」
容器化:作業系統層級隔離
容器只是一組 被隔離的進程,與主機共用 同一個 OS kernel
由 Docker、containerd、Podman 等 Engine 管理
- 優點:超輕量、啟動快(毫秒級,因為只是啟動程式而非整個 OS)、部署一致。
- 缺點:所有容器都必須相容於主機 kernel(例如 Linux 上不能直接跑 Windows container)。
Container = 把程式、依賴封裝起來,像「沙盒進程」,共用同一個 OS kernel
差異
- VM 是 整個 OS 的虛擬化。
- Container 是 進程級別 的虛擬化。
隔離層級不同 → 導致重量、啟動速度、可攜性都不同