虛擬化技術(shù)
虛擬化技術(shù)是一個(gè)通用的概念,在計(jì)算機(jī)領(lǐng)域一般指的是計(jì)算虛擬化,或通常說(shuō)的服務(wù)器虛擬化。虛擬化是一種資源管理技術(shù),將計(jì)算機(jī)的各種實(shí)體資源比如:cpu、內(nèi)存、網(wǎng)絡(luò)、存儲(chǔ)等進(jìn)行抽象,轉(zhuǎn)換呈現(xiàn)出來(lái),來(lái)解決實(shí)體結(jié)構(gòu)間不可切割的問(wèn)題,使用戶對(duì)資源重新組裝來(lái)提高資源使用率。它的目標(biāo)通常是為了在一臺(tái)主機(jī)上運(yùn)行多個(gè)系統(tǒng)或應(yīng)用,從而提高系統(tǒng)資源利用率,降低成本,方便管理和容災(zāi)備份等。
虛擬化技術(shù)分類
虛擬化技術(shù)可以分為基于硬件的虛擬化和基于軟件的虛擬化技術(shù)。基于硬件的虛擬化技術(shù)不多,基于軟件的虛擬化技術(shù)又可分為應(yīng)用虛擬化和平臺(tái)虛擬化。應(yīng)用虛擬化一般指模擬設(shè)備或wine軟件。平臺(tái)虛擬化可分為:
- 完全虛擬化:虛擬機(jī)模擬底層的完整是的硬件和指令。比如VMware這類虛擬機(jī)。
- 硬件輔助虛擬化:利用硬件輔助支持處理敏感指令來(lái)實(shí)現(xiàn)完全虛擬化的功能。比如VMware workstation。
- 部分虛擬化:只針對(duì)部分硬件進(jìn)行虛擬化,客戶操作系統(tǒng)需要進(jìn)行修改。早期的虛擬化技術(shù)。
- 超級(jí)虛擬化:部分硬件操作接口以軟件的形式提供給客戶操作系統(tǒng),客戶操作系統(tǒng)需要進(jìn)行修改。
- 操作系統(tǒng)級(jí)虛擬化:內(nèi)核創(chuàng)建多個(gè)虛擬的操作系統(tǒng)實(shí)例,來(lái)隔離不同的進(jìn)程。容器技術(shù)就是屬于這個(gè)。

Docker與傳統(tǒng)虛擬化的區(qū)別
傳統(tǒng)虛擬化技術(shù)是在硬件資源級(jí)別的虛擬化,需要有虛擬機(jī)管理程序和虛擬機(jī)操作系統(tǒng)。而Docker直接建立在操作系統(tǒng)上虛擬化,直接復(fù)用本地操作系統(tǒng),更加輕量級(jí)。

Docker是什么?
Docker是基于Go語(yǔ)言開(kāi)發(fā)的開(kāi)源項(xiàng)目,Build Ship and Run Any App,Anywhere是Docker的目標(biāo),也就是對(duì)應(yīng)用封裝、分發(fā)、部署、運(yùn)行生命周期進(jìn)行管理,使應(yīng)用組件可以一次封裝,到處運(yùn)行。對(duì)于開(kāi)發(fā)者而言,解決了“我的機(jī)器能夠運(yùn)行”的問(wèn)題;對(duì)于運(yùn)營(yíng)商用Docker來(lái)管理應(yīng)用,對(duì)應(yīng)用進(jìn)行隔離,來(lái)獲得更好的計(jì)算密度;對(duì)于企業(yè)使用Docker能夠建立敏捷的軟件交付管道??梢钥吹紻ocker用途還是很廣泛的。
核心概念
在了解Docker前,我們需要先知道幾個(gè)概念。
- 鏡像(image):鏡像是一個(gè)輕量級(jí)、獨(dú)立、可執(zhí)行的包,它包含了運(yùn)行一個(gè)軟件所需要的一切,包括代碼、運(yùn)行環(huán)境、類庫(kù)、環(huán)境變量、配置文件等。
- 容器(container):容器用來(lái)執(zhí)行和隔離應(yīng)用,容器中運(yùn)行的應(yīng)用(app)天然的運(yùn)行在主機(jī)內(nèi)核上,所以它比虛擬機(jī)具有更好的性能。容器可以本地訪問(wèn),每一個(gè)運(yùn)行的容器都是一個(gè)獨(dú)立的進(jìn)程,不需要更多的內(nèi)存執(zhí)行其它東西。
- Docker倉(cāng)庫(kù):Docker倉(cāng)庫(kù)類似于代碼倉(cāng)庫(kù),是專門存放鏡像的地方。他與注冊(cè)服務(wù)器(Registry)不是同一個(gè)概念,注冊(cè)服務(wù)器是存放倉(cāng)庫(kù)的位置,其上可能有多個(gè)倉(cāng)庫(kù),每一個(gè)倉(cāng)庫(kù)存放某一類景象,而這類景象通過(guò)tag進(jìn)行區(qū)分。比如ubuntu倉(cāng)庫(kù)、Centos倉(cāng)庫(kù)。
Docker倉(cāng)庫(kù)可分為公開(kāi)倉(cāng)庫(kù)和私有倉(cāng)庫(kù),目前最大的公開(kāi)倉(cāng)庫(kù)是Docker hub,存放龐大的鏡像供下載。用戶也可以創(chuàng)建一個(gè)私有倉(cāng)庫(kù),共內(nèi)部使用,類似于git。
Docker安裝
Docker支持Linux、MacOs、Windows、云環(huán)境的安裝,可以參考:
https://docs.docker.com/engine/installation/ 進(jìn)行相應(yīng)的安裝。
Docker版本
最近Docker版本發(fā)生重大變化,分為社區(qū)版(CE)和企業(yè)版(EE),版本也從1.13.x一躍到17.03。
之后,Docker 會(huì)每月發(fā)布一個(gè) edge 版本(17.03, 17.04, 17.05...),每三個(gè)月發(fā)布一個(gè) stable 版本(17.03, 17.06, 17.09...),企業(yè)版(EE) 和 stable 版本號(hào)保持一致,但每個(gè)版本提供一年維護(hù)。

