容器與虛擬機器究竟有何本質上的差異?

2021-09-23 06:41:56 字數 1258 閱讀 3614

作為一種部署應用程式的全新方式,容器技術在短時間內獲得了廣泛關注,但是這種技術同樣存在某些限制,並且和虛擬機器存在本質上的不同。

虛擬化技術已經改變了現代計算方式,它能夠提公升系統資源使用效率、消除應用程式和底層硬體之間的依賴關係,同時加強負載的可以移植性和安全性,但是hypervisor和虛擬機器只是部署虛擬負載的方式之一。作為一種能夠替代傳統虛擬化技術的解決方案,容器虛擬化技術憑藉其高效性和可靠性得到了快速發展,它能夠提供新的特性,並且幫助資料中心專家解決新的顧慮。

容器和虛擬機器之間的主要區別在於虛擬化層的位置和作業系統資源的使用方式。

虛擬機器依賴於hypervisor,其通常被安裝在「裸金屬」系統硬體之上,這導致hypervisor在某些方面被認為是一種作業系統。一旦 hypervisor安裝完成, 就可以從系統可用計算資源當中分配虛擬機器例項了,每台虛擬機器都能夠獲得唯一的作業系統和負載(應用程式)。

通常,第一台虛擬機器都將會被用來執行系統管理程式,比如microsoft system center。而之後的虛擬機器可能包含其他企業負載,比如資料庫、erp、crm、郵件伺服器、**伺服器、web伺服器或者其他業務應用。虛擬機器之間是完全隔離的——沒有任何一台虛擬機器知道(或者依賴)相同系統當中的另外一台虛擬機器的存在——惡意軟體、應用程式崩潰和其他問題只能影響一台虛擬機器。虛擬機器從乙個虛擬系統被移動到另外乙個當中,而不用考慮系統硬體和作業系統等因素。

而容器環境的工作方式則有所不同。對於容器環境來說,需要首先安裝主機作業系統,之後將容器層(比如lxc或libcontainer)安裝在主機作業系統(通常是linux變種)之上。在安裝完容器層之後,就可以從系統可用計算資源當中分配容器例項了,並且企業應用可以被部署在容器當中。但是,每個容器化應用都會共享相同的作業系統(單個主機作業系統)。

相比於虛擬機器,容器擁有更高的資源使用效率,因為它並不需要為每個應用分配單獨的作業系統——例項規模更小、建立和遷移速度也更快。這意味相比於虛擬機器,單個作業系統能夠承載更多的容器。雲提供商十分熱衷於容器技術,因為在相同的硬體裝置當中,可以部署數量更多的容器例項。然而,單個作業系統有可能引起影響所有相關例項的單點事故。比如,惡意軟體或者主機作業系統崩潰可能禁用或者影響所有容器。此外,容器易於遷移,但是只能被遷移到具有相容作業系統核心的其他伺服器當中,這樣會無形中減少遷移選擇。

從實際應用的角度來說,容器和虛擬機器可以在同乙個資料中心當中共存,因此這兩種技術被認為是互補的——為現代應用程式架構師和資料中心管理員新增了可用工具集,通過不同的方式為應用負載提供支援。

容器與虛擬機器

是否容器化是個問題,或者說容器vs虛擬機器是永恆的爭論 資源需求 安全架構優缺點 容器的優缺點 在mirantis,我們經常考慮如何將整個傳統的開發域上雲,我們首先考慮的不是如何去移動乙個開發域,而是考慮該開發域該不該上雲。在本文中,我們將討論在特定情況下上雲需要考慮的一些問題。目前將應用遷移到雲上...

容器和虛擬機器

說明 容器和虛擬機器都依賴於宿主機才能執行。宿主機可以是筆記本,是資料中心的物理伺服器,也可以是公有雲的某個例項。假設宿主機是一台需要執行 4 個業務應用的物理伺服器。在虛擬機器模型中,首先要開啟物理機並啟動 hypervisor 引導程式。一旦 hypervisor 啟動,就會占有機器上的全部物理...

虛擬機器和容器比較

容器相比虛擬機器更輕量 一 虛擬機器 二 容器 一 本質上的區別 vm vmware 在宿主機器 宿主機器作業系統的基礎上建立虛擬層 虛擬化的作業系統 虛擬化的倉庫,然後再安裝應用 container docker容器 在宿主機器 宿主機器作業系統上建立docker引擎,在引擎的基礎上再安裝應用。那...