docker 检查
描述 | 返回有关 Docker 对象的低级信息 |
---|---|
用法 | docker inspect [OPTIONS] NAME|ID [NAME|ID...] |
描述
Docker inspect 提供有关 Docker 控制的构造的详细信息。
默认情况下,docker inspect
将在 JSON 数组中呈现结果。
设置输出格式 (--format)
如果指定了格式,则将为每个结果执行给定的模板。
Go 的 text/template 包描述 格式的所有详细信息。
指定目标类型 (--type)
--type container|image|node|network|secret|service|volume|task|plugin
这docker inspect
命令按 ID 或名称匹配任何类型的对象。在
在某些情况下,有多种类型的对象(例如,容器和卷)
exist 的 intent 值,使结果不明确。
限制docker inspect
对于特定类型的对象,请使用--type
选择。
以下示例检查名为myvolume
.
$ docker inspect --type=volume myvolume
检查容器的大小 (-s, --size)
这--size
或简称-s
,选项将两个附加字段添加到docker inspect
输出。此选项仅适用于容器。容器
不必运行,也适用于已停止的容器。
$ docker inspect --size mycontainer
输出包括常规docker inspect
命令,使用
以下附加字段:
SizeRootFs
:容器中所有文件的总大小(以字节为单位)。SizeRw
:在 容器,与它的镜像相比,以字节为单位。
$ docker run --name database -d redis
3b2cbf074c99db4a0cad35966a9e24d7bc277f5565c17233386589029b7db273
$ docker inspect --size database -f '{{ .SizeRootFs }}'
123125760
$ docker inspect --size database -f '{{ .SizeRw }}'
8192
$ docker exec database fallocate -l 1000 /newfile
$ docker inspect --size database -f '{{ .SizeRw }}'
12288
选项
选择 | 违约 | 描述 |
---|---|---|
-f, --format | 使用自定义模板设置输出格式: 'json':以 JSON 格式 打印'TEMPLATE':使用给定的 Go 模板打印输出。 有关使用模板设置输出格式的更多信息,请参阅 https://docs.docker.com/go/formatting/ | |
-s, --size | 如果类型为容器,则显示总文件大小 | |
--type | 返回指定类型的 JSON |
例子
获取实例的 IP 地址
在大多数情况下,您可以从 JSON 中公平地挑选出任何字段 直截了当的方式。
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID
获取实例的 MAC 地址
$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.MacAddress}}{{end}}' $INSTANCE_ID
获取实例的日志路径
$ docker inspect --format='{{.LogPath}}' $INSTANCE_ID
获取实例的镜像名称
$ docker inspect --format='{{.Config.Image}}' $INSTANCE_ID
列出所有端口绑定
您可以循环访问结果中的数组和映射以生成简单的文本输出:
$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
查找特定端口映射
这.Field
当字段名称以数字开头时,语法不起作用,但
模板语言的index
函数可以。这.NetworkSettings.Ports
部分包含内部端口映射到外部
address/port 对象。要仅获取数字公共端口,请使用index
自
找到特定的端口映射,然后index
0 包含其中的第一个对象
的。然后,指定HostPort
字段以获取公共地址。
$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
获取 JSON 格式的子节
如果请求的字段本身是包含其他字段的结构体,则通过
default 你会得到内部值的 Go 样式转储。Docker 添加模板
功能json
,该选项可用于获取 JSON 格式的结果。
$ docker inspect --format='{{json .Config}}' $INSTANCE_ID