容器:在操作系統上創建,在程序層面,容器安裝在操作系統上,* * *享有相同的操作系統,直接使用操作系統的內核。
虛擬機(Virtual machine):在操作系統上創建,在操作系統級別,具有獨特的操作系統和負載,依賴於hypervisor。
容器:使用小實例快速創建/部署應用程序,更容易創建映像和大規模集群。
虛擬機:創建過程相對復雜,需要創建操作系統和應用,實例大,集群規模小。
容器:持續開發、集成和部署,提供可靠、頻繁的容器映像構建/部署,支持快速簡單的回滾。
虛擬機:支持持續開發、集成和部署,但實現過程高度復雜且自動化水平相對較低,支持復雜的快照回滾。
容器:開發和操作是分離的,容器映像是在構建或發布階段創建的,它將應用程序和基礎設施解耦。
虛擬機:支持多段構造,鏡像要求高,進程耦合度高。
容器:開發、測試和生產環境的壹致性,在本地或外網上運行的壹致性。
虛擬機:自定義鏡像可以實現環境壹致性。
容器:雲平臺或其他操作系統,可以運行在Ubuntu、RHEL、CoreOS、on-prem、Google Container Engine或任何其他環境中。
虛擬機:它可以運行在幾乎所有的操作系統上。
集裝箱:監控水平低,沒有完善的監控平臺。
虛擬機:監控水平高,很多監控系統都很完善。
容器:松耦合、分布式、靈活和微服務。應用程序被劃分為較小的獨立組件,這些組件可以動態部署和管理。
虛擬機:分布式、靈活、面向基礎設施、大型應用、支持高復雜度優化、獨立組件、動態部署和管理。
容器:安全性目前壹般,軟件隔離,資源隔離,更高效的資源利用效率。
虛擬機:安全性高,硬件隔離,資源隔離,資源利用效率比容器低,性能依賴於硬件提供的虛擬化技術。