Docker 使用 Go 模板来控制部分命令以及日志驱动的输出格式。通过合理使用格式化参数,可以让命令结果更易读,也便于在脚本或自动化场景中进一步处理。
很多 Docker CLI 命令都支持 --format 参数,其中 docker inspect 是最常见的示例之一。借助内置模板函数,可以对字段进行拼接、转换、拆分和结构化输出。
Shell 中使用 –format 的注意事项
使用 --format 时,需要根据不同的 Shell 环境选择合适的引号写法。
在 Posix Shell 中,通常可以直接使用单引号:
docker inspect --format '{{join .Args " , "}}'
在 Windows Shell(如 PowerShell)中,同样需要注意引号和参数中的双引号转义方式:
docker inspect --format '{{join .Args " , "}}'
常用格式化函数
Docker 提供了一组基础模板函数,下面是常见用法说明。
join
join 用于把字符串列表连接成一个字符串,并在元素之间加入指定分隔符。
docker inspect --format '{{join .Args " , "}}' container
table
table 用于按表格形式展示指定字段,适合列表类输出。
docker image list --format "table {{.ID}} {{.Repository}} {{.Tag}} {{.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 ":"}}'
title
title 将字符串首字母转换为大写。
docker inspect --format '{{title .Name}}' container
upper
upper 将字符串转换为大写。
docker inspect --format '{{upper .Name}}' container
println
println 会将每个值输出到新的一行,适合遍历多个结果时使用。
docker inspect --format='{{range .NetworkSettings.Networks}}{{println .IPAddress}}{{end}}' container
如何查看可用字段
如果不确定某个命令可以输出哪些字段,最直接的方法是先把完整对象以 JSON 形式打印出来,再从中选择需要的字段。
docker container ls --format='{{json .}}'
这种方式有助于快速了解数据结构,从而更准确地编写自己的格式化模板。
