赞
踩
Docker inspect提供了Docker控制的构造的详细信息,默认情况下,docker inspect将在JSON数组中呈现结果。
–format , -f | 指定输出格式,返回执行指定定的模板。 |
---|---|
–size , -s | 此选项仅适用于容器。容器不一定要运行,它也适用于停止的容器。显示总文件大小 |
–type | 将检查限制为特定类型的对象,可以使用–type选项。 |
官方给的是Go语言模板,这个语言我不是太熟悉,有兴趣的小伙伴可以自己去试试,这里我只解释下官方提供的命令
a.获取一个实例的 IP 地址:
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
range和end是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 上查看就明白了,如下图
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
docker inspect --size mycontainer
这个命令会输出两个字段:
docker inspect --size <容器id> -f '{{ .SizeRootFs }}'
docker inspect --type=volume myvolume
使用以下命令查看所有卷
docker volume ls -q
Ending
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。