docker inspect 查看部分数据
学习使用 go模板 筛选并格式化 docker inspect 指令的输出结果
·
1. 问题描述
- 使用
docker inspect命令可查看 docker 镜像/容器/数据卷 等的具体配置 docker inspect命令格式docker inspect [参数] 容器名/容器ID/镜像名/镜像ID/数据卷名...- 如果不加参数,则输出很多,难以精确查看真正关心的内容
如果使用grep 表达式,则是暴力的将所有符合表达式的内容均显示出来,且破坏原有输出的层级结构 - 示例
对容器my_rocky_ifconfig_01进行操作
使用inspect命令,查看容器my_rocky_ifconfig_01的数据卷设置(即创建容器时的-v参数)
将所有配置信息全部输出,看的眼花,要查看的参数在键值对Mounts下
查找不便
若使用grep指令,且不使用正则表达式时,情况如下
只显示一行
问题:如何精确的查看Mounts下的配置而不输出其他内容?
2. 解决方案
- 使用
-f参数筛选并格式化docker inspect命令的输出docker inspect -f="格式化表达式" 容器/镜像/存储卷...-
-f参数筛选并格式化docker inspect的输出这里的格式化表达式是
go模板(go template):官方参考 参考2-
查看
Mounts中包含的配置信息# 对容器 my_rocky_ifconfig_01 进行操作 docker inspect -f="{{.Mounts}}" my_rocky_ifconfig_01"输出结果:

输出足够精确但格式比较混乱。
表达式中添加json以输出 json 格式方便后续处理# 对容器 my_rocky_ifconfig_01 进行操作 docker inspect -f="{{json .Mounts}}" my_rocky_ifconfig_01"输出结果:

-
查看
HostConfig下Binds中的配置信息# 对容器 my_rocky_ifconfig_01 进行操作 docker inspect -f="{{.HostConfig.Binds}}" my_rocky_ifconfig_01"输出结果:

表达式中添加json以输出 json 格式方便后续处理# 对容器 my_rocky_ifconfig_01 进行操作 docker inspect -f="{{json .HostConfig.Binds}}" my_rocky_ifconfig_01"输出结果:

-
-
使用
jq软件包将命令的输出美化并输出
上边已经可筛选并输出json格式的内容,接下来要将上边输出的内容进行格式化。
而软件包jq正好可对 json 格式文本进行格式化。- 安装
jq软件包# 演示系统是 centos 7,使用 yum 管理工具 sudo yum install -y jq - 使用
jq对前边的输出进行格式化docker inspect语句XXX | jq-
查看
Mounts中包含的配置信息# 对容器 my_rocky_ifconfig_01 进行操作 # docker inspect 语句输出格式为 json,以便 jq 进行格式化 docker inspect -f="{{json .Mounts}}" my_rocky_ifconfig_01" | jq输出结果:与之前参看结果相同,且没有其他冗余项目的输出

-
查看
HostConfig下Binds中的配置信息# 对容器 my_rocky_ifconfig_01 进行操作 # docker inspect 语句输出格式为 json,以便 jq 进行格式化 docker inspect -f="{{json .HostConfig.Binds}}" my_rocky_ifconfig_01 | jq"输出结果:

-
- 安装
-
grep指令配合正则表达式
(略)docker inspect 容器/镜像/存储卷... | grep -e 正则表达式- 将
docker inspect指令的完整输出结果保存到文件中,再用其他文本编辑器或指令来查看- 保存输出完整输出结果
# 将 完整输出结果 保存到 /home/inspect_res.txt 中 # 使用 输出重定向 > 直接覆盖 # 对容器 my_rocky_ifconfig_01 进行操作 docker inspect my_rocky_ifconfig_01 > /home/inspect_res.txt - 使用其他文本编辑软件/文本查看指令进行查看
如使用cat配合more指令,或cat配less指令- 输入
/,再输入要搜索的关键词,再按回车进行搜索 - 按大写
N搜索上一个,按小写n搜索下一个 - 在
less中,按q退出;在more中,浏览到文件末尾自动退出
- 输入
- 保存输出完整输出结果
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)