容器和虛擬機的對比


 

 

 

 “敏捷”和“高性能”是容器相較於虛擬機最大的優勢,也是它能夠在 PaaS 這種更細粒度的資源管理平台上大行其道的重要原因。

不過,有利就有弊,基於 Linux Namespace 的隔離機制相比於虛擬化技術也有很多不足之處,其中最主要的問題就是:隔離得不徹底。

首先,既然容器只是運行在宿主機上的一種特殊的進程,那么多個容器之間使用的就還是同一個宿主機的操作系統內核。

盡管你可以在容器里通過 Mount Namespace 單獨掛載其他不同版本的操作系統文件,比如 CentOS 或者 Ubuntu,但這並不能改變共享宿主機內核的事實。這意味着,如果你要在 Windows 宿主機上運行 Linux 容器,或者在低版本的 Linux 宿主機上運行高版本的 Linux 容器,都是行不通的。

而相比之下,擁有硬件虛擬化技術和獨立 Guest OS 的虛擬機就要方便得多了。最極端的例子是,Microsoft 的雲計算平台 Azure,實際上就是運行在 Windows 服務器集群上的,但這並不妨礙你在它上面創建各種 Linux 虛擬機出來。

其次,在 Linux 內核中,有很多資源和對象是不能被 Namespace 化的,最典型的例子就是:時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM