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


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

文章插圖
1、容器與虛擬機擁有著類似的使命:對應用程序及其關聯性進行隔離,從而構建起一套能夠隨處運行的自容納單元 。此外,容器與虛擬機還擺脫了對物理硬件的需求,允許我們更為高效地使用計算資源,從而提升能源效率與成本效益 。
2、虛擬機會將虛擬硬件、內核(即操作系統)以及用戶空間打包在新虛擬機當中,虛擬機能夠利用“虛擬機管理程序”運行在物理設備之上 。虛擬機依賴于hypervisor,其通常被安裝在“裸金屬”系統硬件之上,這導致hypervisor在某些方面被認為是一種操作系統 。一旦 hypervisor安裝完成,就可以從系統可用計算資源當中分配虛擬機實例了,每臺虛擬機都能夠獲得唯一的操作系統和負載(應用程序) 。簡言之,虛擬機先需要虛擬一個物理環境,然后構建一個完整的操作系統,再搭建一層Runtime,然后供應用程序運行 。
3、對于容器環境來說,不需要安裝主機操作系統,直接將容器層(比如LXC或libcontainer)安裝在主機操作系統(通常是Linux變種)之上 。在安裝完容器層之后,就可以從系統可用計算資源當中分配容器實例了,并且企業應用可以被部署在容器當中 。但是,每個容器化應用都會共享相同的操作系統(單個主機操作系統) 。容器可以看成一個裝好了一組特定應用的虛擬機,它直接利用了宿主機的內核,抽象層比虛擬機更少,更加輕量化,啟動速度極快 。
【容器和虛擬機區別 容器和虛擬機的四大區別】4、相比于虛擬機,容器擁有更高的資源使用效率,因為它并不需要為每個應用分配單獨的操作系統——實例規模更小、創建和遷移速度也更快 。這意味相比于虛擬機,單個操作系統能夠承載更多的容器 。云提供商十分熱衷于容器技術,因為在相同的硬件設備當中,可以部署數量更多的容器實例 。此外,容器易于遷移,但是只能被遷移到具有兼容操作系統內核的其他服務器當中,這樣就會給遷移選擇帶來限制 。因為容器不像虛擬機那樣同樣對內核或者虛擬硬件進行打包,所以每套容器都擁有自己的隔離化用戶空間,從而使得多套容器能夠運行在同一主機系統之上 。我們可以看到全部操作系統層級的架構都可實現跨容器共享,惟一需要獨立構建的就是二進制文件與庫 。正因為如此,容器才擁有極為出色的輕量化特性 。

    推薦閱讀