Docker與VM虛擬機器的比較

2021-10-01 23:19:00 字數 1496 閱讀 5018

所有的應用程式都有自己的依賴關係,其中包括軟體和硬體資源。 docker是開發者的開放平台,通過將每個應用程式打包到容器中來隔離依賴關係。容器就像是輕量級的虛擬機器,可以擴充套件到成千上萬的節點,通過在不同虛擬環境中執行相同應用程式來幫助提公升雲的可移植性。虛擬機器廣泛用於雲計算,通過使用虛擬機器來實現隔離和資源控制。 虛擬機器使用自己的記憶體管理載入完整的作業系統,使應用程式更加高效和安全,同時確保其高可用性。

docker容器與虛擬機器有什麼不同?

虛擬機器具有完整的作業系統,其自身的記憶體管理通過相關的虛擬裝置進行支援。 在虛擬機器中,為使用者作業系統和虛擬機器管理程式分配有效的資源,從而可以在單台計算機(或主機)上並行執行乙個或多個作業系統的多個例項。 每個客戶作業系統都作為主機系統中的單個實體執行。

另一方面,docker容器是使用docker引擎而不是管理程式來執行的。 因此容器比虛擬機器小,並且由於主機核心的共享,可以更快地啟動,具有更好的效能,更少的隔離和更好的相容性。 docker容器能夠共享乙個核心並共享應用程式庫,因此容器比虛擬機器具有更低的系統開銷,只要使用者願意使用單一平台來提供共享的作業系統,容器可以更快,更少資源。虛擬機器可能需要幾分鐘才能建立並啟動,而只需幾秒鐘即可建立並啟動乙個容器。與在虛擬機器中執行應用程式相比,容器中包含的應用程式提供了卓越的效能。

docker容器比虛擬機器弱的乙個關鍵指標就是「隔離」。英特爾的vt-d和vt-x技術為虛擬機器提供了ring-1硬體隔離技術,因此虛擬機器可以充分利用它的優勢。它可以幫助虛擬機器高效使用資源和防止相互干擾。 docker容器還沒有任何形式的硬體隔離,因此它們容易受到攻擊。

如何進行進行選擇?

選擇容器還是虛擬機器依賴於應用程式如何設計。 如果應用程式旨在提供可伸縮性和高可用性,那麼容器是最好的選擇,否則應用程式可以放置在虛擬機器中。對於高i/o要求的業務,例如資料庫服務,建議部署docker+物理機,因為在虛擬機器中部署docker,i/o效能將受到虛擬機器的限制。對於虛擬桌面服務等強調租戶許可權和安全的業務,建議採用虛擬機器方式,虛擬機器的多租戶強隔離特性,保證租戶在擁有虛機root許可權的同時,其他租戶和主機的安全。

或者更好的選擇是混合方案,執行在虛擬機器中的容器。 docker容器可以在虛擬機器內部執行,虛擬機器並為它們提供經過驗證的隔離,安全屬性,移動性,動態虛擬網路等。為實現安全隔離和資源的高利用率,基本應該遵循:不同租戶的業務執行採用虛擬機器隔離,相似型別的業務部署在同一組容器上的思路。

結論:docker容器正在成為devops環境中的乙個重要工具。 devops領域內的docker containers的用例非常多。在docker容器上執行應用程式,然後在任何地方部署(cloud或內部部署或任何linux的風格)現在都已成為現實。

在異構環境中工作,虛擬機器提供了高度的靈活性,而docker容器主要關注應用程式及其依賴關係。docker containers允許通過使用每個雲的虛擬機器環境來處理雲,從而輕鬆移植跨雲的應用程式堆疊。這代表了乙個有用的功能,在沒有docker containers的情況下,必須以更加複雜和乏味的方式來實現。這裡闡述的並不是關於放棄虛擬機器,而是在必要時除了虛擬機器之外,根據實際情況使用docker容器,不認為docker容器可以完全清除虛擬機器。

Docker與VM虛擬機器的比較

所有的應用程式都有自己的依賴關係,其中包括軟體和硬體資源。docker是開發者的開放平台,通過將每個應用程式打包到容器中來隔離依賴關係。容器就像是輕量級的虛擬機器,可以擴充套件到成千上萬的節點,通過在不同虛擬環境中執行相同應用程式來幫助提公升雲的可移植性。虛擬機器廣泛用於雲計算,通過使用虛擬機器來實...

docker 對比 VM虛擬機器

當我遇到docker的時候,我只能用興奮來形容,真好用!今天看見網上將它和vm虛擬機器進行了對比,我也去搜尋了一波。以此作為總結記錄。從架構部分來看 這張圖應該是表現最合理的,從圖上可以看出,在基礎架構部分之上vm多了一層hypervisor 虛擬機器管理系統 在這個之上又多了一層客戶機作業系統gu...

VM虛擬機器安裝Docker

centos centos 7 x86 64 1810.iso vm 15 pro systemctl status firewalld 檢視防火牆狀態 systemctl stop firewalld 停止防火牆 systemctl disable firewalld 禁止開機啟動 這兩位老哥講的...