核心知識點:
1.虛擬化的定義?虛擬化的核心和目標?
2.虛擬化的分類?docker屬於那種虛擬化?
3.docker與傳統虛擬化的區別?docker是直接在作業系統上實現虛擬化,直接復用本地作業系統。
虛擬化技術是乙個通用的概念,在不同領域有不同的理解。
在計算機領域,一般指的是計算機虛擬化,或通常說的伺服器虛擬化。
維基百科上的定義如下:「虛擬化是一種資源管理技術,是將計算機的各種實體資源, (虛擬化的定義)
如伺服器、網路、內層及儲存等,予以抽象、轉換後呈現出來,打破實體結構間不可切割的障礙,
使使用者可以比原本的組態更好的方式來應用這些資源。」
可見虛擬化的核心是對資源的抽象,目標往往是為了在同乙個主機上同時執行多個系統或者應用,
從而提高系統資源的利用率,並且帶來降低成本、方便管理和容錯容災等好處。
從大類上分,虛擬化技術可分為基於硬體的虛擬化和基於軟體的虛擬化。
其中,真正意義上的基於硬體技術的虛擬化技術不多見,少數如網絡卡中的單根多io虛擬化等技術。
基於軟體的虛擬化從物件所在的層次,又可分為應用虛擬化和平台虛擬化(通常說的虛擬技術即屬於這個範疇)。
其中,前者一般指的是一些模擬裝置或諸如wine這樣的軟體。平台虛擬化又可分為如下幾類:
(1)完全虛擬化:虛擬機器模擬完整的底層硬體環境和特權指令的執行過程,客戶作業系統無需進行修改。
例如,ibm p和z系列的虛擬化、vmware workstation、virtualbox、qemu等;
(2)硬體輔助虛擬化:利用硬體(主要是cpu)輔助支援(目前x86體系結構上可用的硬體輔助虛擬化技術包括intel-vt和amd-v),
處理敏感指令來實現完全虛擬化的功能,客戶作業系統無需修改,例如 vmware workstation、xen、kvm。
(3)部分虛擬化:只針對部分硬體資源進行虛擬化,客戶作業系統需要進行修改。現在有些虛擬化技術的早期版本僅支援部分虛擬化。
(4)準虛擬化:部分硬體介面以軟體的形式提供給客戶機作業系統,客戶作業系統需要進行修改,例如早期的xen。
可見,docker以及其他容器技術,都屬於作業系統這個範疇,作業系統虛擬化最大的特點就是不需要額外的supervisor支援。
docker虛擬化方式之所以有眾多優勢,這與作業系統虛擬化技術自身的設計和實現是分不開的。
傳統方式是在硬體層面實現虛擬化,需要有額外的虛擬機器管理應用和虛擬機器作業系統層。
docker容器是在作業系統層面上實現虛擬化,直接復用本地主機的作業系統,因此更加輕量級。
傳統虛擬化與docker虛擬化
虛擬機器 完全虛擬化 docker 作業系統級虛擬化 應用程式 執行時的環境 應用程式 虛擬機器作業系統 執行時的環境 虛擬機器管理程式 docker容器支援 宿主機作業系統 宿主機作業系統 硬體層 硬體層 docker映象 images 類似於虛擬機器映象,面向docker引擎的唯讀模板,包含了檔...
Docker與虛擬化(虛擬機器區別)
虛擬化 virtualization 技術是乙個通用的概念,在不同領域有不同的理解。在計算領域,一般指的是計算虛擬化 computing virtualization 或通常說的伺服器虛擬化。維基百科上的定義如下 在計算機技術中,虛擬化是一種資源管理技術,是將計算機的各種實體資源,如伺服器 網路 記...
虛擬化 Docker雜談
虛擬化 虛擬化是docker的理論基礎,也是docker所實現功能的目的。資源的彙總和再分配 虛擬化技術將應用與真實的計算機資源分離,不但打破了應用程式與真實資源之間不可切割的障礙,也讓資源跨物理或地域的配置和使用成為可能。通過虛擬化技術,可以更容易地完成醫用程式對依賴資源的解耦,讓應用程式輕鬆地執...