1、docker 啟動快速屬于秒級別。虛擬機通常需要幾分鐘去啟動
2、docker 需要的資源更少, docker 在操作系統級別進行虛擬化, docker 容器和內核交互,幾乎沒有性能損耗,性能優于通過 Hypervisor 層與內核層的虛擬化
3、docker 更輕量, docker 的架構可以共用一個內核與共享應用程序庫,所占內存極小。同樣的硬件環境, Docker 運行的鏡像數遠多于虛擬機數量,對系統的利用率非常高
4、高可用和可恢復性: docker 對業務的高可用支持是通過快速重新部署實現的。虛擬化具備負載均衡,高可用,容錯,遷移和數據保護等經過生產實踐檢驗的成熟保障機制, VMware 可承諾虛擬機 99.999% 高可用,保證業務連續性
快速創建、刪除:虛擬化創建是分鐘級別的, Docker 容器創建是秒級別的, Docker 的快速迭代性,決定了無論是開發、測試、部署都可以節約大量時間
5、交付、部署:虛擬機可以通過鏡像實現環境交付的一致性,但鏡像分發無法體系化。 Docker 在 Dockerfile 中記錄了容器構建過程,可在集群中實現快速分發和快速部署
(缺點)與虛擬機相比, docker 隔離性更弱, docker 屬于進程之間的隔離,虛擬機可實現系統級別隔離
(缺點)可管理性: docker 的集中化管理工具還不算成熟。各種虛擬化技術都有成熟的管理工具,例如 VMware vCenter 提供完備的虛擬機管理能力
(缺點)安全性: docker 的安全性也更弱。 Docker 的租戶 root 和宿主機 root 等同,一旦容器內的用戶從普通用戶權限提升為root權限,它就直接具備了宿主機的root權限,進而可進行無限制的操作。虛擬機租戶 root 權限和宿主機的 root 虛擬機權限是分離的,并且虛擬機利用如 Intel 的 VT-d 和 VT-x 的 ring-1 硬件隔離技術,這種隔離技術可以防止虛擬機突破和彼此交互,而容器至今還沒有任何形式的硬件隔離,這使得容器容易受到攻擊
?