容器和虛擬機器區別 容器和虛擬機器的四大區別

來源:時尚少女範 2.26W
容器和虛擬機器區別 容器和虛擬機器的四大區別

1、容器與虛擬機器擁有著類似的使命:對應用程式及其關聯性進行隔離,從而構建起一套能夠隨處執行的自容納單元。此外,容器與虛擬機器還擺脫了對物理硬體的需求,允許我們更為高效地使用計算資源,從而提升能源效率與成本效益。

2、虛擬機器會將虛擬硬體、核心(即操作系統)以及使用者空間打包在新虛擬機器當中,虛擬機器能夠利用“虛擬機器管理程式”執行在物理裝置之上。虛擬機器依賴於hypervisor,其通常被安裝在“裸金屬”系統硬體之上,這導致hypervisor在某些方面被認為是一種作業系統。一旦 hypervisor安裝完成, 就可以從系統可用計算資源當中分配虛擬機器例項了,每臺虛擬機器都能夠獲得唯一的作業系統和負載(應用程式)。簡言之,虛擬機器先需要虛擬一個物理環境,然後構建一個完整的作業系統,再搭建一層Runtime,然後供應用程式執行。

3、對於容器環境來說,不需要安裝主機作業系統,直接將容器層(比如LXC或libcontainer)安裝在主機作業系統(通常是Linux變種)之上。在安裝完容器層之後,就可以從系統可用計算資源當中分配容器例項了,並且企業應用可以被部署在容器當中。但是,每個容器化應用都會共享相同的作業系統(單個主機作業系統)。容器可以看成一個裝好了一組特定應用的虛擬機器,它直接利用了宿主機的核心,抽象層比虛擬機器更少,更加輕量化,啟動速度極快。

4、相比於虛擬機器,容器擁有更高的資源使用效率,因為它並不需要為每個應用分配單獨的作業系統——例項規模更小、建立和遷移速度也更快。這意味相比於虛擬機器,單個作業系統能夠承載更多的容器。雲提供商十分熱衷於容器技術,因為在相同的硬體裝置當中,可以部署數量更多的容器例項。此外,容器易於遷移,但是隻能被遷移到具有相容作業系統核心的其他伺服器當中,這樣就會給遷移選擇帶來限制。因為容器不像虛擬機器那樣同樣對核心或者虛擬硬體進行打包,所以每套容器都擁有自己的隔離化使用者空間,從而使得多套容器能夠執行在同一主機系統之上。我們可以看到全部作業系統層級的架構都可實現跨容器共享,惟一需要獨立構建的就是二進位制檔案與庫。正因為如此,容器才擁有極為出色的輕量化特性。

熱門標籤