Docker與虛擬機器的區別

2021-08-30 11:04:24 字數 993 閱讀 8887

譯者按: 各種虛擬機器技術開啟了雲計算時代;而docker,作為下一代虛擬化技術,正在改變我們開發、測試、部署應用的方式。那虛擬機器與docker究竟有何不同呢?

原文: comparing virtual machines vs docker containers

譯者: fundebug

首先,大家需要明確一點,docker容器不是虛擬機器。

2023年,當我第一次接觸docker的時候,我把它比做一種輕量級的虛擬機器。這樣做無可厚非,因為docker最初的成功秘訣,正是它比虛擬機器更節省記憶體,啟動更快。docker不停地給大家宣傳,」虛擬機器需要數分鐘啟動,而docker容器只需要50毫秒」。

然而,docker容器並非虛擬機器,我們不妨來比較一下它們。

使用虛擬機器執行多個相互隔離的應用時,如下圖:

從下到上理解上圖:

使用docker容器執行多個相互隔離的應用時,如下圖:

不難發現,相比於虛擬機器,docker要簡潔很多。因為我們不需要執行乙個臃腫的從作業系統了。

從下到上理解上圖:

docker守護程序可以直接與主作業系統進行通訊,為各個docker容器分配資源;它還可以將容器與主作業系統隔離,並將各個容器互相隔離。虛擬機器啟動需要數分鐘,而docker容器可以在數毫秒內啟動。由於沒有臃腫的從作業系統,docker可以節省大量的磁碟空間以及其他系統資源。

說了這麼多docker的優勢,大家也沒有必要完全否定虛擬機器技術,因為兩者有不同的使用場景。虛擬機器更擅長於徹底隔離整個執行環境。例如,雲服務提供商通常採用虛擬機器技術隔離不同的使用者。而docker通常用於隔離不同的應用,例如前端,後端以及資料庫。

如果你對docker感興趣的話,不妨學習一下dive into docker course。

Docker與虛擬機器區別

1 虛擬機器vm vmware 通過hypervisor對硬體資源進行虛擬化,是在宿主機 宿主機系統的基礎上建立虛擬層 虛擬化的作業系統 虛擬化的倉庫,進行操作程式 docker直接使用硬體資源,在宿主機器 宿主機器作業系統上建立docker引擎,在引擎的基礎上操作操作程式,利用率上來看docker...

Docker與虛擬化(虛擬機器區別)

虛擬化 virtualization 技術是乙個通用的概念,在不同領域有不同的理解。在計算領域,一般指的是計算虛擬化 computing virtualization 或通常說的伺服器虛擬化。維基百科上的定義如下 在計算機技術中,虛擬化是一種資源管理技術,是將計算機的各種實體資源,如伺服器 網路 記...

docker與虛擬機器

首先需要明確一點 docker不是容器,它是建立容器的工具,是應用容器引擎。docker是一種輕量級的虛擬化技術,比傳統的虛擬機器效能更好。下圖是虛擬機器的體系結構 server 表示真實電腦。host os 真實電腦的作業系統,例如 windows,linux hypervisor 虛擬機器平台,...