虛擬機器和容器比較

2022-06-10 13:45:10 字數 1604 閱讀 4993

容器相比虛擬機器更輕量

一 虛擬機器

二 容器

一、本質上的區別:

vm(vmware)在宿主機器、宿主機器作業系統的基礎上建立虛擬層、虛擬化的作業系統、虛擬化的倉庫,然後再安裝應用;

container(docker容器),在宿主機器、宿主機器作業系統上建立docker引擎,在引擎的基礎上再安裝應用。

那麼問題來了,沒有作業系統,怎麼執行程式?

可以在docker中建立乙個ubuntu的映象檔案,這樣就能將ubuntu系統整合到docker中,執行的應用就都是ubuntu的應用。

二、使用上的區別:

1.虛擬機器中ubuntu所佔記憶體:

2.docker容器中ubuntu映象檔案所佔記憶體

docker在宿主機器的作業系統上建立docker引擎,直接在宿主主機的作業系統上呼叫硬體資源,而不是虛擬化作業系統和硬體資源,所以操作速度快。

這個其實安裝乙個ubuntu的虛擬機器和拉取乙個docker的ubuntu映象檔案,執行一下就知道了,區別很明顯,虛擬機器開一下大概得2分多鐘,而docker只需要2秒鐘。

integration:

docker的整合性要比vm好。這個並沒有深入研究,不過可以提供乙個部落格,這裡面關於docker整合的內容寫的很好。

三、docker特點

1)上手快

使用者只需要幾分鐘,就可以把自己的程式「docker 化」。docker 依賴於「寫時複製」 (copy-on-write)模型,使修改應用程式也非常迅速,可以說達到「隨心所致,**即改」 的境界。

隨後,就可以建立容器來執行應用程式了。大多數 docker 容器只需要不到 1 秒中即可 啟動。由於去除了管理程式的開銷,docker 容器擁有很高的效能,同時同一臺宿主機中也 可以執行更多的容器,使使用者盡可能的充分利用系統資源。

2)職責的邏輯分類

使用 docker,開發人員只需要關心容器中執行的應用程式,而運維人員只需要關心如 何管理容器。docker 設計的目的就是要加強開發人員寫**的開發環境與應用程式要部署 的生產環境一致性。從而降低那種「開發時一切正常,肯定是運維的問題(測試環境都是正 常的,上線後出了問題就歸結為肯定是運維的問題)」

3)快速高效的開發生命週期

docker 的目標之一就是縮短**從開發、測試到部署、上線執行的週期,讓你的應用 程式具備可移植性,易於構建,並易於協作。(通俗一點說,docker 就像乙個盒子,裡面 可以裝很多物件,如果需要這些物件的可以直接將該大盒子拿走,而不需要從該盒子中一件 件的取。)

4)鼓勵使用面向服務的架構

容器和虛擬機器

說明 容器和虛擬機器都依賴於宿主機才能執行。宿主機可以是筆記本,是資料中心的物理伺服器,也可以是公有雲的某個例項。假設宿主機是一台需要執行 4 個業務應用的物理伺服器。在虛擬機器模型中,首先要開啟物理機並啟動 hypervisor 引導程式。一旦 hypervisor 啟動,就會占有機器上的全部物理...

辨析物理機 虛擬機器 容器的比較

虛擬機器 vm 是計算機系統的 簡而言之,它可以在實際上是一台計算機的硬體上執行看似 多台單獨的計算機。作業系統 os 及其應用程式共享來自單個主機伺服器或主機伺服器池的硬體資源。每個vm都需要其自己的 基礎os,並且硬體已虛擬化 系統管理程式或虛擬機器監視器是建立和執行vm的軟體,韌體或硬體。它位...

物理機 虛擬機器 容器的比較(二)

原文 上一章,介紹了虛擬化技術的優點,下面介紹容器技術。一 容器 docker 使用 google 公司推出的 go 語言 進行開發實現,基於 linux 核心的cgroup,namespace,以及 aufs 類的 union fs 等技術,對程序進行封裝隔離,屬於 作業系統層面的虛擬化技術。由於...