- 存儲鏡像到宿主機:
- 存儲鏡像內(nèi)容
- 在graph 中注冊鏡像信息
- 鏡像注冊: 每一層docker layer的image都可以認為有兩個部分組成。
- 鏡像中的文件系統(tǒng), 可以認為是未來的容器中的靜態(tài)文件內(nèi)容。
- 容器的json文件, 包含基本屬性信息和動態(tài)信息包括env等等。

Register 過程
- 驗證鏡像ID
- 驗證ID合法
- 驗證鏡像是否存在
- 初始化鏡像目錄: 防止路徑?jīng)_突; 刪除 graph.driver 中的指定內(nèi)容, 即如果該鏡像在graph.driver中存在的話, unmount 該鏡像在宿主機上的路徑, 并將目錄完全刪除。
- 創(chuàng)建鏡像路徑
創(chuàng)建路徑完畢之后, Docker Daemon 首先將鏡像所有祖先通過aufs系統(tǒng)mount到mnt下指定點,最終直接返回鏡像所在rootfs路徑, 以便后續(xù)直接在該路徑下解壓Docker 鏡像具體內(nèi)容(只包含layer內(nèi)容)

1,2,3 為鏡像ID
Layers: 該鏡像所有祖先鏡像的鏡像ID
- Create函數(shù):創(chuàng)建 layers, diff, mnt目錄并存儲metadata在layers中。
- Get函數(shù): mount祖先鏡像并返回根目錄。
- 存儲鏡像內(nèi)容:
*鏡像壓縮內(nèi)容
*鏡像json信息