docker inspect 命令详解

Docker inspect提供了Docker控制的构造的详细信息,默认情况下,docker inspect将在JSON数组中呈现结果。

1.Options

–format , -f指定输出格式,返回执行指定定的模板。
–size , -s此选项仅适用于容器。容器不一定要运行,它也适用于停止的容器。显示总文件大小
–type将检查限制为特定类型的对象,可以使用–type选项。

2.示例

2.1 -f

官方给的是Go语言模板,这个语言我不是太熟悉,有兴趣的小伙伴可以自己去试试,这里我只解释下官方提供的命令
a.获取一个实例的 IP 地址:

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

rangeend是go模板语法,用于循环迭代一个集合或数组并执行特定操作。
.NetworkSettings.Networks 表示容器的网络设置对象中的 Networks 字段,包含一个或多个网络的信息。
{{.IPAddress}}:在迭代中,每个网络对象都会被传递到这个部分。在每次迭代中,这个部分会获取当前网络的 IP 地址,并将其输出。
b.获取一个实例的 MAC 地址:

docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID

.NetworkSettings.Networks这个取值的来源是在docker inspect命令输出的json字符串中,将输出的json放到json.cn 上查看就明白了,如下图
图片.png
图片.png
c.获取一个实例的日志路径:

docker inspect --format='{{.LogPath}}' $INSTANCE_ID

d.获取一个实例的镜像名称:

docker inspect --format='{{.Config.Image}}' $INSTANCE_ID

e.列出所有端口绑定:

docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID

f.查找特定端口映射:

docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID

g.获取一个部分的 JSON 格式:

docker inspect --format='{{json .Config}}' $INSTANCE_ID

如果你想获取其他部分的也可以直接改,比如Labels

docker inspect --format='{{json .Config.Labels}}' $INSTANCE_ID

2.2 -s

docker inspect --size mycontainer

图片.png
这个命令会输出两个字段:

  • SizeRootFs: 容器中所有文件的总大小,以字节为单位。
  • SizeRw: 在容器中创建或更改的文件的大小,与它的镜像相比,以字节为单位。
docker inspect --size <容器id>  -f '{{ .SizeRootFs }}'

图片.png

2.3 --type

docker inspect --type=volume myvolume

使用以下命令查看所有卷

docker volume ls -q

Ending

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值