格式化命令和日志输出

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 个字符,则将其截断为前 15 个字符。

println

println 将每个值打印在新的一行上。

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

提示

要了解可以打印哪些数据,请将所有内容显示为 JSON

$ docker container ls --format='{{json .}}'
页面选项