docker屬于操作系統(tǒng)級虛擬化;操作系統(tǒng)虛擬化最大的特點(diǎn)就是不需要額外的supervisor支持,內(nèi)核通過創(chuàng)建多個(gè)虛擬的操作系統(tǒng)實(shí)例來隔離不同的進(jìn)程,容器相關(guān)技術(shù)就在這個(gè)范疇。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker-1.13.1版、Dell G3電腦。
docker屬于哪一類虛擬化
虛擬化
虛擬化(virtualization)技術(shù)是一個(gè)通用的概念,在不同領(lǐng)域有不同的理解。在計(jì)算領(lǐng)域,一般指的是計(jì)算虛擬化(computing virtualization),或通常說的服務(wù)器虛擬化。
維基百科上的定義如下:“在計(jì)算機(jī)技術(shù)中,虛擬化是一種資源管理技術(shù),是將計(jì)算機(jī)的各種實(shí)體資源,如服務(wù)器、網(wǎng)絡(luò)、內(nèi)存及存儲等,予以抽象、轉(zhuǎn)換后呈現(xiàn)出來,打破實(shí)體結(jié)構(gòu)間的不可切割的障礙,使用戶可以用比原本的組態(tài)更好的方式來應(yīng)用這些資源。”
可見,虛擬化的核心是對資源的抽象,目標(biāo)往往是為了在同一個(gè)主機(jī)上同時(shí)運(yùn)行多個(gè)系統(tǒng)或應(yīng)用,從而提高系統(tǒng)資源的利用率,并且?guī)斫档统杀尽⒎奖愎芾砗腿蒎e(cuò)容災(zāi)等好處。
從大類上分,虛擬化技術(shù)可分為基于硬件的虛擬化和基于軟件的虛擬化。
基于軟件的虛擬化從對象所在的層次,又可以分為應(yīng)用虛擬化和平臺虛擬化(通常說的虛擬機(jī)技術(shù)即屬于這個(gè)范疇)。前者一般指的是一些模擬設(shè)備或諸如Wine這樣的軟件,后者又可以細(xì)分為幾個(gè)子類:
完全虛擬化:虛擬機(jī)模擬完整的底層硬件環(huán)境和特權(quán)指令的執(zhí)行過程,客戶操作系統(tǒng)無須進(jìn)行修改。例如IBM p和z系列的虛擬化、VMware Workstation、VirtualBox、QEMU等;
-
硬件輔助虛擬化:利用硬件(主要是CPU)輔助支持(目前x86體系結(jié)構(gòu)上可用的硬件輔助虛擬化技術(shù)包括Intel-VT和AMD-V)處理敏感指令來實(shí)現(xiàn)完全虛擬化的功能,客戶操作系統(tǒng)無須修改,例如VMware Workstation, Xen, KVM;
-
部分虛擬化:只針對部分硬件資源進(jìn)行虛擬化,客戶操作系統(tǒng)需要進(jìn)行修改。現(xiàn)在有些虛擬化技術(shù)的早期版本僅支持部分虛擬化;
-
超虛擬化(paravirtualization):部分硬件接口以軟件的形式提供給客戶機(jī)操作系統(tǒng),客戶操作系統(tǒng)需要進(jìn)行修改,例如早期的Xen;
-
操作系統(tǒng)級虛擬化:內(nèi)核通過創(chuàng)建多個(gè)虛擬的操作系統(tǒng)實(shí)例(內(nèi)核和庫)來隔離不同的進(jìn)程。容器相關(guān)技術(shù)即在這個(gè)范疇。
可見,Docker以及其他容器技術(shù)都屬于操作系統(tǒng)虛擬化這個(gè)范疇,操作系統(tǒng)虛擬化最大的特點(diǎn)就是不需要額外的supervisor支持。Docker虛擬化方式之所以有眾多優(yōu)勢,跟操作系統(tǒng)虛擬化技術(shù)自身的設(shè)計(jì)和實(shí)現(xiàn)是分不開的。
推薦學(xué)習(xí):《docker視頻教程》