如何让docker ps命令输出字典列表格式的合法JSON内容
问题解答
结论
无法仅通过调整docker ps的原生命令参数直接实现该需求。Docker 的--format参数基于 Go 模板实现,默认是按单条容器记录逐行输出模板内容,没有内置的列表拼接参数。
推荐实现方案
方案1:借助jq工具(最简便,输出自动格式化)
jq是常用的JSON处理工具,-s参数可以将逐行输入的多个JSON对象合并为一个数组,直接输出符合要求的格式化JSON数组:
docker ps --no-trunc --format '{"name":"{{.Names}}", "status":"{{.Status}}"}' | jq -s
方案2:纯Shell拼接(无额外依赖的场景)
如果运行环境没有安装jq,可以用Shell命令手动拼接数组结构:
echo "[" docker ps --no-trunc --format '{"name":"{{.Names}}", "status":"{{.Status}}"}' | paste -sd "," - echo "]"
内容的提问来源于stack exchange,提问作者Hai Vu
相关产品推荐
相关产品推荐

