如果你不介意只使用一種操作系統的話,那么和傳統的hypervisor相比,基于容器的虛擬化能夠提供更高的效率與性能。
基于容器的虛擬化使用單個內核運行一個操作系統的多個實例。每個實例在一個完全隔離的環境中運行,因此不存在一個容器訪問另一個容器中文件這樣的風險。因此,基于容器的虛擬化是安全的。
而且這種虛擬化方式的資源使用效率也是非常高的,因為所有的容器都運行在同一個內核上。但是這種方式同樣存在弊端:只有一個內核意味著無法選擇其他的操作系統。在對虛擬化方式進行評估時,了解它們之間的差異以及每種虛擬化方式的優勢是非常重要的。
基于容器的虛擬化與hypervisor的差異
hypervisor與基于容器的虛擬化存在一些不同之處。首先,基于hypervisor的虛擬化,其每個虛擬機都需要安裝一個完整的操作系統,這當然包括內核。這一需求使得基于hypervisor的虛擬化相當厚重但也非常靈活。因為每個虛擬機都有自己的內核,所以hypervisor只需要協調虛擬機訪問硬件設備。因此,你可以安裝任何操作系統,而且它們都是在完全隔離的環境中運行的。
另一方面,在基于容器的虛擬化環境中,虛擬機與硬件的關系更緊密,因為所有的虛擬機都使用同一個內核,不再需要hypervisor.流行的基于容器的虛擬化運行在Windows內核(使用Parallels Virtuozzo虛擬化容器時)或者Linux內核之上。由于Linux內核具備開放性以及靈活性,所以在多數情況下基于容器的虛擬化通常使用Linux內核。而且可以使用很多開放以及免費的解決方案。