官术网_书友最值得收藏!

1.3 Docker與虛擬化

虛擬化(virtualization)技術是一個通用的概念,在不同領域有不同的理解。在計算領域,一般指的是計算虛擬化(computing virtualization),或通常說的服務器虛擬化。維基百科上的定義如下:


“在計算機技術中,虛擬化是一種資源管理技術,是將計算機的各種實體資源,如服務器、網絡、內存及存儲等,予以抽象、轉換后呈現出來,打破實體結構間的不可切割的障礙,使用戶可以用比原本的組態更好的方式來應用這些資源。”


可見,虛擬化的核心是對資源的抽象,目標往往是為了在同一個主機上同時運行多個系統或應用,從而提高系統資源的利用率,并且帶來降低成本、方便管理和容錯容災等好處。

從大類上分,虛擬化技術可分為基于硬件的虛擬化和基于軟件的虛擬化。其中,真正意義上的基于硬件的虛擬化技術不多見,少數如網卡中的單根多IO虛擬化(Single Root I/O Virtualization and Sharing Specification, SR-IOV)等技術,也超出了本書的討論范疇。

基于軟件的虛擬化從對象所在的層次,又可以分為應用虛擬化和平臺虛擬化(通常說的虛擬機技術即屬于這個范疇)。前者一般指的是一些模擬設備或諸如Wine這樣的軟件,后者又可以細分為幾個子類:

? 完全虛擬化。虛擬機模擬完整的底層硬件環境和特權指令的執行過程,客戶操作系統無須進行修改。例如IBM p和z系列的虛擬化、VMware Workstation、VirtualBox、QEMU等;

? 硬件輔助虛擬化。利用硬件(主要是CPU)輔助支持(目前x86體系結構上可用的硬件輔助虛擬化技術包括Intel-VT和AMD-V)處理敏感指令來實現完全虛擬化的功能,客戶操作系統無須修改,例如VMware Workstation, Xen, KVM;

? 部分虛擬化。只針對部分硬件資源進行虛擬化,客戶操作系統需要進行修改。現在有些虛擬化技術的早期版本僅支持部分虛擬化;

? 超虛擬化(paravirtualization)。部分硬件接口以軟件的形式提供給客戶機操作系統,客戶操作系統需要進行修改,例如早期的Xen;

? 操作系統級虛擬化。內核通過創建多個虛擬的操作系統實例(內核和庫)來隔離不同的進程。容器相關技術即在這個范疇。

可見,Docker以及其他容器技術都屬于操作系統虛擬化這個范疇,操作系統虛擬化最大的特點就是不需要額外的supervisor支持。Docker虛擬化方式之所以有眾多優勢,跟操作系統虛擬化技術自身的設計和實現是分不開的。

圖1-2比較了Docker和常見的虛擬機方式的不同之處。

圖1-2 Docker和傳統的虛擬化方式的不同之處

傳統方式是在硬件層面實現虛擬化,需要有額外的虛擬機管理應用和虛擬機操作系統層。Docker容器是在操作系統層面上實現虛擬化,直接復用本地主機的操作系統,因此更加輕量級。

主站蜘蛛池模板: 南城县| 泗阳县| 台南县| 肥乡县| 屯昌县| 墨脱县| 垣曲县| 高要市| 洛阳市| 犍为县| 磴口县| 兴山县| 麻江县| 佛山市| 乌恰县| 贡觉县| 象州县| 阿坝县| 台南县| 临沂市| 尉氏县| 沁源县| 闸北区| 凉山| 大化| 祁阳县| 广丰县| 宽城| 淮南市| 平潭县| 浪卡子县| 西乌珠穆沁旗| 四子王旗| 增城市| 勃利县| 高雄县| 图们市| 唐山市| 油尖旺区| 银川市| 宜良县|