首页/云/Docker 容器速查/docker ps --format 定制输出
基础命令50 条

docker ps --format 定制输出

用 Go 模板自定义 ps 输出列,或直接输出 JSON 交给 jq 处理,适合脚本巡检与生成报表。

Docker 容器速查云更新于 2026-10-13

--format 的作用

docker ps 默认输出列宽固定、信息挤在一起,--format 用 Go 模板挑列:既能精简成人眼友好的表格,也能直接产出 JSON 交给 jq 做过滤。同一套模板也能用在 docker ps -a 与 docker images 上。

基本信息

用途自定义 ps / image 列表的输出列
语法--format 'table {{.Names}}\t{{.Status}}'
JSON 输出--format '{{json .}}' 后接 jq
常用字段.ID .Names .Image .State .Status .Ports .RunningFor .Labels .Mounts .Networks
固化配置~/.docker/config.json 里的 psFormat、imagesFormat

典型使用场景

  • 巡检脚本只取容器名与状态,输出稳定便于 diff 与存档
  • 生成报表:拼成 TSV/CSV 交给表格工具或告警系统
  • 结合 jq 过滤出所有非 running 或不健康的容器
  • 一屏看全端口映射与挂载来源,省去翻 docker inspect 的 JSON
  • CI 里断言目标服务的容器确实处于 running 状态
  • 把模板写进 ~/.docker/config.json 的 psFormat,日常 docker ps 直接就是自己习惯的列

示例

示例
docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'    # table 前缀才带表头
docker ps --format '{{.Names}}' | sort                            # 只要名字好比对
docker ps --format '{{json .}}' | jq -r 'select(.State!="running") | .Names'
docker ps -a --format '{{.Names}}\t{{.RunningFor}}\t{{.Status}}'  # 含已停止容器

常用模板字段

字段内容使用注意
{{.Names}}容器名列表默认按名称排序
{{.Image}}镜像名与标签确认跑的是不是刚发布的版本
{{.State}}running / exited 等固定值脚本判断用这一列
{{.Status}}运行时长与健康标记人看的文本,会随运行时间变化
{{.Ports}}端口映射串核对宿主端口是否按预期发布
{{.Labels}}逗号分隔的标签配合 label 过滤做分组
表头只在加 table 前缀时打印;模板里的 \t 是制表转义,写成字面的 tab 字符或 shell 转义反而会输出错位。
字段名大小写敏感,写成 {{.name}} 会报 can't evaluate field name;不确定有哪些字段时先跑 --format '{{json .}}' 看完整键名。
docker images --format 与 docker ps 同源,只是字段集合不同(.Repository .Tag .Size .CreatedSince .Digest),同一套写模板的思路可以直接搬过去。

易错点

  • 字段名写错会直接报错退出,巡检脚本进定时任务前先手工跑一遍验证模板
  • {{.Status}} 是给人看的文本,包含运行时长与健康标记,脚本判断状态应当用 {{.State}},否则每次输出都在变
  • PowerShell 与 bash 对 \t 和引号的处理不同,复杂模板写进脚本文件或 docker 配置文件,避免多层转义踩坑
  • 在 docker ps -a 上套用只适合运行中容器的模板(如 {{.Ports}})时,已停止容器这一列是空的,看输出别误判成端口丢失
  • {{.Mounts}} 只给出具名卷与绑定挂载的名称,看不到容器内挂载点,要查细节还得看 docker inspect 的 Mounts 字段
  • 模板里引用带参数的字段(如 {{.Label "owner"}})必须用外层单引号包住整条 --format,否则引号会被 shell 吃掉导致解析失败

数据来源与参考

  • Docker 官方 CLI 参考:docker ps --format(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌