docker對比虛擬機的優勢:1、占用磁盤空間小;2、啟動速度快,以秒計時;3、并發性好,一臺宿主機可以啟動成千上百個容器;4、資源利用率高;5、更容易遷移;6、更容易維護;7、更容易擴展。
本教程操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
虛擬機
虛擬機(Virtual Machine)指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。
傳統的虛擬機(Vmware,VirtualBox等等)不同在于:虛擬系統不會降低電腦的性能,啟動虛擬系統不需要像啟動windows系統那樣耗費時間,運行程序更加方便快捷;
虛擬系統只能模擬和現有操作系統相同的環境,而虛擬機則可以模擬出其他種類的操作系統;而且虛擬機需要模擬底層的硬件指令,所以在應用程序運行速度上比虛擬系統慢得多。
容器(Docker)
Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數周的 任務,在Docker容器的處理下,只需要數秒就能完成。
隨著云計算時代到來,使開發者不必為了追求效果而配置高額的硬件,Docker 改變了高性能必然高價格的思維定勢。Docker 與云的結合,讓云空間得到更充分的利用。不僅解決了硬件管理的問題,也改變了虛擬化的方式。
相比于VM的優勢
? | 容器技術 | 虛擬機技術 |
占用磁盤空間 | 小,甚至幾十KB(鏡像層的情況) | 非常大,上GB |
啟動速度 | 快,幾秒鐘 | 慢,幾分鐘 |
運行形態 | 直接運行于宿主機的內核上,不同容器共享同一個Linux內核 | 運行于Hypervisior |
并發性 | 一臺宿主機可以啟動成千上百個容器 | 最多幾十個虛擬機 |
性能 | 接近宿主機本地進程 | 遜于宿主機 |
資源利用率 | 高 | 低 |
1、啟動速度快
啟動虛擬機需要先啟動虛擬機的操作系統,再啟動應用,這個過程非常慢;
而啟動 Docker 相當于啟動宿主操作系統上的一個進程。
2、占用資源(占用磁盤空間)少
虛擬機是一個完整的操作系統,需要占用大量的磁盤、內存和 CPU 資源,一臺機器只能開啟幾十個的虛擬機。而 Docker 只是一個進程,只需要將應用以及相關的組件打包,在運行時占用很少的資源,一臺機器可以開啟成千上萬個 Docker。
3、更容易遷移
提供一致性的運行環境。已經打包好的應用可以在不同的機器上進行遷移,而不用擔心環境變化導致無法運行。
4、更容易維護
使用分層技術和鏡像,使得應用可以更容易復用重復的部分。復用程度越高,維護工作也越容易。
5、更容易擴展
可以使用基礎鏡像進一步擴展得到新的鏡像,并且官方和開源社區提供了大量的鏡像,通過擴展這些鏡像可以非常容易得到我們想要的鏡像。
推薦學習:《docker視頻教程》