docker與虛擬機的主要區(qū)別:
Docker 是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
虛擬機(Virtual Machine)指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng)。
虛擬機與容器區(qū)別
啟動時間:Docker秒級啟動,虛擬機分鐘級啟動。
輕量級:docker鏡像大小通常以M為單位,虛擬機以G為單位。容器資源占用小,要比虛擬機部署更快速。
性能:docker共享宿主機內核,系統(tǒng)級虛擬化,占用資源少,沒有Hypervisor層開銷,性能基本接近物理機; 虛擬機需要Hypervisor層支持,虛擬化一些設備,具有完整的GuestOS,虛擬化開銷大,因而降低性能,沒有容器性能好。
安全性:由于共享宿主機內核,只是進程級隔離,因此隔離性和穩(wěn)定性不如虛擬機,docker具有一定權限訪問宿主機內核,存在一定安全隱患。
使用要求:VM基于硬件的完全虛擬化,需要硬件CPU虛擬化技術支持; docker共享宿主機內核,可運行在主流的Linux發(fā)行版,不用考慮CPU是否支持虛擬化技術。