區(qū)別:1、啟動速度上,Docker是秒級的,kvm是分鐘級的;2、與kvm相比,Docker應用的性能高,同時系統(tǒng)的開銷??;3、保存狀態(tài)上,Docker比kvm更為輕便和低成本;4、硬盤使用上,Docker以MB為單位,kvm以GB為單位。
本教程操作環(huán)境:linux5.9.8系統(tǒng)、docker-1.13.1版、Dell G3電腦。
Docker簡介
Docker 項目的目標是實現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。
在 LXC 的基礎上 Docker 進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。
下面的圖片比較了 Docker 和傳統(tǒng)虛擬化方式的不同之處,可見容器是在操作系統(tǒng)層面上實現(xiàn)虛擬化,直接復用本地主機的操作系統(tǒng),而傳統(tǒng)方式則是在硬件層面實現(xiàn)。
Docker與KVM(傳統(tǒng)虛擬機)對比
作為一種新興的虛擬化方式,Docker 跟傳統(tǒng)的虛擬化方式相比具有眾多的優(yōu)勢。
1、Docker容器的啟動可以在秒級實現(xiàn),這相比傳統(tǒng)的虛擬機方式要快得多。 其次,Docker 對系統(tǒng)資源的利用率很高,一臺主機上可以同時運行數(shù)千個 Docker 容器。
2、容器除了運行其中應用外,基本不消耗額外的系統(tǒng)資源,使得應用的性能很高,同時系統(tǒng)的開銷盡量小。傳統(tǒng)虛擬機方式運行 10 個不同的應用就要起 10 個虛擬機,而Docker 只需要啟動 10 個隔離的應用即可。
3、 虛擬化技術依賴物理CPU和內(nèi)存,是硬件級別的;而docker構建在操作系統(tǒng)上,利用操作系統(tǒng)的containerization技術,所以docker甚至可以在虛擬機上運行。
4、虛擬化系統(tǒng)一般都是指操作系統(tǒng)鏡像,比較復雜,稱為“系統(tǒng)”;而docker開源而且輕量,稱為“容器”,單個容器適合部署少量應用,比如部署一個redis、一個memcached。
5、傳統(tǒng)的虛擬化技術使用快照來保存狀態(tài);而docker在保存狀態(tài)上不僅更為輕便和低成本,而且引入了類似源代碼管理機制,將容器的快照歷史版本一一記錄,切換成本很低。
6、傳統(tǒng)的虛擬化技術在構建系統(tǒng)的時候較為復雜,需要大量的人力;而docker可以通過Dockfile來構建整個容器,重啟和構建速度很快。更重要的是Dockfile可以手動編寫,這樣應用程序開發(fā)人員可以通過發(fā)布Dockfile來指導系統(tǒng)環(huán)境和依賴,這樣對于持續(xù)交付十分有利。
7、當然KVM對比于容器也有一個比較大的優(yōu)勢就是可以使用不同的操作系統(tǒng)或內(nèi)核。所以,舉例說,你可以使用微軟Azure,同時運行Windows Server2012的實例和SUSE Linux企業(yè)級服務器的實例。至于Docker,所有容器都必須使用同樣的操作系統(tǒng)和內(nèi)核。
對比總結(jié)
特性 |
Docker容器 |
KVM虛擬機 |
啟動 |
秒級 |
分鐘級 |
硬盤使用 |
一般為 MB |
一般為 GB |
性能 |
接近原生 |
弱于 |
系統(tǒng)支持量 |
單機支持上千個容器 |
一般幾十個 |
推薦學習:《docker視頻教程》