虛擬化技術對比:
KVM:全虛擬化,需要模擬各種硬件
docker:嚴格來說不算是虛擬化技術,只是進程隔離和資源限制
實例啟動進程對比:
在kvm虛擬機中執行top命令,看宿主機進程樹,根本看不到top的進程
在docker容器中,同樣執行top命令,在宿主機進程數中直接可以看到top進程
占用內容資源對比:
KVM虛擬機一般會獨占一段內存,即使閑置,其他虛擬機也無法使用。而容器可以只有一個內存上限,沒有下限。如果它只使用1MB內存,那么它只占用宿主機1MB內存。宿主機可以將富余內存作為他用。
docker:啟動兩個實例,才占用一點
kvm:啟動一個512M內存的實例,就占了這么多了
實例的內核對比
kvm的虛擬機內核無需與宿主機一致
docker:實例內核和宿主機內核一致
操作系統支持度對比:
kvm:支持多種操作系統,除了linux,還支持windows,uninx、solaris等
docker:只支持linux
啟動一個實例需要的時間對比
lxc容器技術將操作系統抽象到了一個新的高度。直接從init啟動,省去了硬件自檢、grub引導、加載內核、加載驅動等傳統啟動項目,因此啟動飛速。
docker:秒級
kvm:分鍾級別
鏡像模板占用空間對比
kvm:占用空間大
[root@linux-node2 ~]# du -smh /var/lib/libvirt/images/generic.qcow2
1.9G /var/lib/libvirt/images/generic.qcow2
docker:占用空間小
磁盤讀寫性能對比:
kvm
docker
網絡性能測試對比
kvm
docker
綜合來說:docker比kvm更省資源,可以提供非常接近宿主機的性能,而kvm資源隔離比docker更高,kvm支持的操作系統類型更多