[Docker] 檢視映像檔的歷史資訊
Docker 映像檔(Image)由是一層一層的 Layer 推疊起來的,因為要了解映像檔最好的方式就是看每一層 Layer 的資訊。
而 Docker 有提供 docker history
指令,可讓我們查詢此映像檔每一層 Layer 的資訊。
範例
等等要使用的映像檔是之前寫 如何容器化 ASP.NET Core 網站 使用的範例,別名是 myapp,如下圖。
現在要來檢查 myapp 每一層 layer 的資訊,請輸入 docker history myapp
,就會看到如下圖的 layer 歷史訊息。
上圖已經列出 myapp 每一層 layer 的歷史訊息。 但是會發現 Created By 的字被截斷了,這樣還是沒辦法知道裡面到底做了什麼事情。 這時候我們要用 docker history 其他的參數來讓文字不要被截斷。
docker history 其他參數的應用
因為 Created By 的內容太長了,我現在只想要顯示 Created By 這個欄位。 我們可以使用 --format
來決定我只要顯示 Created By 這個欄位,而 --format
後面的參數是吃 Go Template 的格式來設定。 例如輸入
docker history myapp --format "{{.ID}}: {{.CreatedBy}}"
指令,就只會顯示 Image ID 和 Created By 資訊,如下圖。 (–format 能設定的欄位請參考 Format the output)
接下來要使用 --no-trunc
這個參數,讓輸出的文字不要被截斷,請輸入指令
docker history myapp --format "{{.CreatedBy}}" --no-trunc
,會看到如下圖畫面。
這樣就完全看出每一層的 layer 到底做了哪些事情。 例如劃紅線的部分就是我把檔案放進映像檔裡面,然後再設定 ENTRYPOINT 。