docker是一個(gè)客戶端-服務(wù)器(C/S)架構(gòu)程序,docker客戶端只需要向docker服務(wù)器或者守護(hù)進(jìn)程發(fā)出請(qǐng)求,服務(wù)器或者守護(hù)進(jìn)程將完成所有工作并返回結(jié)果。
本教程操作環(huán)境:linux7.3系統(tǒng)、docker-1.13.1版、Dell G3電腦。
docker是什么架構(gòu)
docker架構(gòu)圖
通過(guò)上圖可以得知,Docker 在運(yùn)行時(shí)分為 Docker 引擎(服務(wù)端守護(hù)進(jìn)程) 和 客戶端工具,我們?nèi)粘J褂酶鞣N docker 命令,其實(shí)就是在使用 客戶端工具 與 Docker 引擎 進(jìn)行交互。
Client 客戶端
Docker 是一個(gè)客戶端-服務(wù)器(C/S)架構(gòu)程序。Docker 客戶端只需要向 Docker 服務(wù)器或者守護(hù)進(jìn)程發(fā)出請(qǐng)求,服務(wù)器或者守護(hù)進(jìn)程將完成所有工作并返回結(jié)果。Docker 提供了一個(gè)命令行工具 Docker 以及一整套 RESTful API。你可以在同一臺(tái)宿主機(jī)上運(yùn)行 Docker 守護(hù)進(jìn)程和客戶端,也可以從本地的 Docker 客戶端連接到運(yùn)行在另一臺(tái)宿主機(jī)上的遠(yuǎn)程 Docker 守護(hù)進(jìn)程。
Host 主機(jī)(docker引擎)
一個(gè)物理或者虛擬的機(jī)器用于執(zhí)行 Docker 守護(hù)進(jìn)程和容器。
Image 鏡像
什么是 Docker 鏡像?簡(jiǎn)單的理解,Docker 鏡像就是一個(gè) Linux 的文件系統(tǒng)(Root FileSystem),這個(gè)文件系統(tǒng)里面包含可以運(yùn)行在 Linux 內(nèi)核的程序以及相應(yīng)的數(shù)據(jù)。
通過(guò)鏡像啟動(dòng)一個(gè)容器,一個(gè)鏡像就是一個(gè)可執(zhí)行的包,其中包括運(yùn)行應(yīng)用程序所需要的所有內(nèi)容:包含代碼,運(yùn)行時(shí)間,庫(kù),環(huán)境變量和配置文件等。
Docker 把 App 文件打包成為一個(gè)鏡像,并且采用類似多次快照的存儲(chǔ)技術(shù),可以實(shí)現(xiàn):
多個(gè) App 可以共用相同的底層鏡像(初始的操作系統(tǒng)鏡像);
App 運(yùn)行時(shí)的 IO 操作和鏡像文件隔離;
通過(guò)掛載包含不同配置/數(shù)據(jù)文件的目錄或者卷(Volume),單個(gè) App 鏡像可以用來(lái)運(yùn)行無(wú)數(shù)個(gè)不同業(yè)務(wù)的容器。
推薦學(xué)習(xí):《docker視頻教程》