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

1.4.1 docker pull

1.3節中我們提到,用戶可以為容器指定鏡像,作為容器運行時的rootfs,既然如此,鏡像從何而來則成為一個關鍵。答案很簡單,一切都歸功于docker pull命令。

docker pull命令的作用是:Docker Daemon從Docker Registry下載指定的容器鏡像,并將鏡像存儲在本地的Graph中,以備后續創建Docker容器時使用。docker pull命令的執行流程如圖1-10所示。

圖1-10中有編號的箭頭表示docker pull命令在發起后,Docker架構中相應模塊所做的一系列運行操作。下面我們逐一分析這些步驟。

1)Docker Client處理用戶發起的docker pull命令,解析完請求以及參數之后,發送一個HTTP請求給Docker Server,HTTP請求方法為POST,請求URL為"/images/create?"+"xxx",實際意義為下載相應的鏡像。

2)Docker Server接收以上HTTP請求,并交給mux.Router,mux.Router通過URL以及請求方法類型來確定執行該請求的具體handler。

3)mux.Router將請求路由分發至相應的handler,具體為PostImagesCreate。

4)在PostImageCreate這個handler之中,創建并初始化一個名為"pull"的Job,之后觸發執行該Job。

5)名為"pull"的Job在執行過程中執行pullRepository操作,即從Docker Registry中下載相應的一個或者多個Docker鏡像。

6)名為"pull"的Job將下載的Docker鏡像交給graphdriver管理。

7)graphdriver負責存儲Docker鏡像,一方面將實際鏡像存儲至本地文件系統中,另一方面為鏡像創建對象,由Docker Daemon統一管理。

圖1-10 docker pull命令執行流程示意圖

主站蜘蛛池模板: 罗田县| 山东| 萨迦县| 葵青区| 吉安县| 桂阳县| 原平市| 卫辉市| 商南县| 准格尔旗| 剑河县| 绥中县| 高唐县| 体育| 铜鼓县| 象州县| 宜君县| 时尚| 合川市| 呼和浩特市| 福建省| 二连浩特市| 旺苍县| 湘阴县| 缙云县| 常州市| 红桥区| 玛纳斯县| 成安县| 于田县| 普定县| 元谋县| 泾阳县| 辽中县| 固始县| 琼海市| 万全县| 陇川县| 如皋市| 宜宾县| 冀州市|