1. 程式人生 > >Docker鏡像的目錄存儲講解

Docker鏡像的目錄存儲講解

doc layer 原創文章 orien 一個 over 管理 nsh 分享

我們成功安裝完docker後,執行命令行sudo docker run hello-world, 如果是第一次執行,則會從遠程拉取hello-world的鏡像到本地,然後運行,顯示hello world。

技術分享圖片

以ubuntu系統為例,本地鏡像存儲於目錄/var/lib/docker文件夾下:

技術分享圖片

相關目錄介紹如下。

/var/lib/docker/image/overlay2:存儲鏡像管理數據的目錄,以使用的存儲驅動命名,在我的ubuntu系統上,使用的驅動為overlay2。

技術分享圖片

其中repositories.json文件相當於SAP UI5裏的manifest.json, 以及nodejs項目中的project.json:

技術分享圖片

/var/lib/docker/image/overlay2/distribution$: 從遠端拉到本地的鏡像相關元數據

技術分享圖片

/var/lib/docker/image/overlay2/imagedb:鏡像數據庫

技術分享圖片

/var/lib/docker/image/overlay2/imagedb/content:

每鏡像層次的配置digest,也就是鏡像ID。content文件夾裏能看到一個sha256子文件夾。

技術分享圖片

進入該子文件夾,會看到一個以鏡像ID命名的文件,我們用命令行docker images看到的鏡像ID的前12位就來自這個文件。

技術分享圖片

/var/lib/docker/image/overlay2/layerdb: 鏡像每個layer的元數據。

技術分享圖片

進入sha256,會看到layer的chain ID:

技術分享圖片

chain ID內的內容:

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

要獲取更多Jerry的原創文章,請關註公眾號"汪子熙":

技術分享圖片

Docker鏡像的目錄存儲講解