格式化命令和日誌輸出

Docker 支援 Go 模板,您可以使用它來操縱某些命令和日誌驅動程式的輸出格式。

Docker 提供了一組基本函式來操縱模板元素。所有這些示例都使用 docker inspect 命令,但許多其他 CLI 命令都有一個 --format 標誌,並且許多 CLI 命令參考都包含自定義輸出格式的示例。

注意

當使用 --format 標誌時,您需要注意您的 shell 環境。在 POSIX shell 中,您可以使用單引號執行以下命令

$ docker inspect --format '{{join .Args " , "}}'

否則,在 Windows shell(例如 PowerShell)中,您需要使用單引號,但要按如下方式轉義引數內的雙引號

$ docker inspect --format '{{join .Args \" , \"}}'

join

join 連線一個字串列表以建立一個單獨的字串。它在列表中的每個元素之間放置一個分隔符。

$ docker inspect --format '{{join .Args " , "}}' container

table

table 指定您希望看到其輸出的欄位。

$ docker image list --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}"

json

json 將一個元素編碼為 json 字串。

$ docker inspect --format '{{json .Mounts}}' container

lower

lower 將字串轉換為其小寫表示形式。

$ docker inspect --format "{{lower .Name}}" container

split

split 將一個字串切片成由分隔符分隔的字串列表。

$ docker inspect --format '{{split .Image ":"}}' container

title

title 將字串的第一個字元大寫。

$ docker inspect --format "{{title .Name}}" container

upper

upper 將字串轉換為其大寫表示形式。

$ docker inspect --format "{{upper .Name}}" container

pad

pad 向字串新增空白填充。您可以指定在字串之前和之後新增的空格數。

$ docker image list --format '{{pad .Repository 5 10}}'

此示例在映象倉庫名稱前新增 5 個空格,在其後新增 10 個空格。

truncate

truncate 將字串縮短到指定長度。如果字串短於指定長度,則保持不變。

$ docker image list --format '{{truncate .Repository 15}}'

此示例顯示映象倉庫名稱,如果它更長,則將其截斷為前 15 個字元。

println

println 將每個值列印在新的一行上。

$ docker inspect --format='{{range .NetworkSettings.Networks}}{{println .IPAddress}}{{end}}' container

提示

要了解可以列印哪些資料,請將所有內容顯示為 json

$ docker container ls --format='{{json .}}'