區別:1、啟動速度上,Docker是秒級的,kvm是分鐘級的;2、與kvm相比,Docker應用的效能高,同時系統的開銷小;3、保存狀態上,Docker比kvm更為輕巧和低成本;4、硬碟使用上,Docker以MB為單位,kvm以GB為單位。
本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。
Docker 專案的目標是實現輕量級的作業系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。
Docker 在 LXC 的基礎上進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡單。使用者操作 Docker 的容器就像操作快速輕量級的虛擬機器一樣簡單。
下面的圖片比較了Docker 和傳統虛擬化方式的不同之處,可見容器是在作業系統層面上實現虛擬化,直接復用本地主機的作業系統,而傳統方式則是在硬體層面實現。
作為一種新興的虛擬化方式,Docker 跟傳統的虛擬化方式相比具有眾多的優勢。
1、Docker容器的啟動可以在秒級實現,這相比傳統的虛擬機器方式要快得多。其次,Docker 對系統資源的使用率很高,一台主機上可以同時運行數千個 Docker 容器。
2、容器除了運作其中應用程式外,基本上不消耗額外的系統資源,使得應用的效能很高,同時系統的開銷盡量小。傳統虛擬機方式運行 10 個不同的應用程式就要起 10 個虛擬機,而Docker 只需要啟動 10 個隔離的應用機。
3、 虛擬化技術依賴實體CPU和內存,是硬體層級的;而docker建構在作業系統上,利用作業系統的containerization技術,所以docker甚至可以在虛擬機器上運作。
4、虛擬化系統一般都是指作業系統映像,比較複雜,稱為“系統”;而docker開源而且輕量級,稱為“容器”,單一容器適合部署少量應用,例如部署一個redis、一個memcached。
5、傳統的虛擬化技術使用快照來保存狀態;而docker在保存狀態上不僅更為輕巧和低成本,而且引入了類似源代碼管理機制,將容器的快照歷史版本一一記錄,切換成本很低。
6、傳統的虛擬化技術在建置系統的時候較為複雜,需要大量的人力;而docker可以透過Dockfile來建構整個容器,重啟和建置速度很快。更重要的是Dockfile可以手動編寫,這樣應用程式開發人員可以透過發布Dockfile來指導系統環境和依賴,這樣對於持續交付十分有利。
7、當然KVM比較於容器也有比較大的優點就是可以使用不同的作業系統或核心。所以,舉例說,你可以使用微軟Azure,同時執行Windows Server2012的執行個體和SUSE Linux企業級伺服器的執行個體。至於Docker,所有容器都必須使用相同的作業系統和核心。
#特性 |
Docker容器 |
KVM虛擬機器 |
#啟動 |
秒級 |
分鐘級 |
#硬碟使用 |
一般為MB |
一般為GB |
效能 |
## 接近原生 | |
##弱於 | 系統支援量 | 單機支援上千個容器 |
以上是kvm和docker之間有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!