虚拟机和Docker的最大区别
使用Vagrant和KVM 或者Hyper-V我們可以構建和運行虛擬機。相關的工具比如 ansible, chef 或者puppet可以用來進行環境的設置和配置。
虛擬機和Docker都能夠給一臺宿主機上的應用提供隔離的運行環境。區別是什么呢?
從上圖右邊虛擬機架構圖能看出,虛擬機里在宿主操作系統和物理硬件之間多了一個中間層:Hypervisor。
Hypervisor是一種運行在物理服務器和操作系統之間的中間軟件層,可允許多個操作系統和應用共享一套基礎物理硬件,事實上成為虛擬環境中的“元”操作系統,Hypervisor可以協調訪問服務器上的所有物理設備和虛擬機,也稱為虛擬機監視器(Virtual Machine Monitor)。Hypervisor是所有虛擬化技術的核心。當服務器啟動并執行Hypervisor時,它會給每一臺虛擬機分配適量的內存、CPU、網絡和磁盤,并加載所有虛擬機的客戶操作系統,每臺虛擬機有自己的虛擬操作系統和存儲空間,因此需要消耗宿主機大量的物理資源,同時也需要花費一定時間來啟動。
而上圖左邊,Docker直接運行在宿主機的操作系統上,沒有Hypervisor這個中間層。Docker實際上就是運行于操作系統上的普通進程,通過Linux Primitives實現的彼此隔離,但是共享同一個操作系統內核。
正因為這種共享性,使得Docker的資源占用遠小于虛擬機,而且啟動速度也遠遠快于虛擬機。
總結
以上是生活随笔為你收集整理的虚拟机和Docker的最大区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网红密子君带货无骨鸡爪!粉丝提醒她有蟑螂
- 下一篇: 最新确认:小米13 Ultra用上了US