Docker 是怎么工作的?你知道嗎?
Docker 是如何工作的?
下圖展示了 Docker 的架構(gòu),以及當(dāng)我們運(yùn)行 "docker build"、"docker pull "和 "docker run "時(shí)它是如何工作的。

Docker 架構(gòu)由 3 個(gè)部分組成:
Docker 客戶(hù)端
Docker 客戶(hù)端與 Docker 管理進(jìn)程對(duì)話(huà)。
Docker 主機(jī)
Docker 管理進(jìn)程監(jiān)聽(tīng) Docker API 請(qǐng)求,并管理 Docker 對(duì)象,如鏡像、容器、網(wǎng)絡(luò)和卷。
Docker 注冊(cè)表
Docker 注冊(cè)表存儲(chǔ) Docker 鏡像。Docker Hub 是任何人都可以使用的公共注冊(cè)表。
讓我們以 "docker run "命令為例來(lái)看看整個(gè)工作過(guò)程。
- Docker 從注冊(cè)表中提取映像。
 - Docker 創(chuàng)建一個(gè)新容器。
 - Docker 為容器分配一個(gè)讀寫(xiě)文件系統(tǒng)。
 - Docker 創(chuàng)建一個(gè)網(wǎng)絡(luò)接口,將容器連接到默認(rèn)網(wǎng)絡(luò)。
 - Docker 啟動(dòng)容器。
 
有了 Docker,我們可以快速開(kāi)發(fā)、打包和運(yùn)行應(yīng)用程序。下圖對(duì)比了傳統(tǒng)開(kāi)發(fā)和基于 Docker 的開(kāi)發(fā)部署流程。
圖片
開(kāi)發(fā)人員可以在本地編寫(xiě)代碼,然后構(gòu)建 Docker 鏡像并將其推送到開(kāi)發(fā)環(huán)境。這樣,開(kāi)發(fā)工作就可以在團(tuán)隊(duì)內(nèi)部共享。測(cè)試會(huì)在開(kāi)發(fā)環(huán)境中自動(dòng)運(yùn)行。
鏡像是一個(gè)只讀模板,包含創(chuàng)建 Docker 容器的說(shuō)明。我們使用 Dockerfile 來(lái)定義創(chuàng)建鏡像和運(yùn)行鏡像的步驟。
當(dāng)發(fā)現(xiàn) bug 或需要改進(jìn)時(shí),上述過(guò)程可以增量運(yùn)行。
當(dāng)開(kāi)發(fā)測(cè)試完成后,Docker 鏡像會(huì)被推送到生產(chǎn)環(huán)境(通常在云上)。
與不使用 Docker 的傳統(tǒng)開(kāi)發(fā)方式相比,Docker 是相當(dāng)輕量級(jí)和快速的,因?yàn)槊看挝覀冞M(jìn)行更改時(shí),只需重建 Dockerfile 中已更改的部分。















 
 
 


















 
 
 
 