1. docker inspect
1.1. 描述
返回有关 Docker 对象的底层信息
Docker inspect 提供了有关由 Docker 控制的构造的详细信息。
默认情况下,docker inspect 将结果呈现在 JSON 数组中。
1.2. 帮助
$ docker inspect --help
Usage: docker inspect [OPTIONS] NAME|ID [NAME|ID...]
Return low-level information on Docker objects
Options:
-f, --format string Format the output using the given Go template
-s, --size Display total file sizes if the type is container
--type string Return JSON for specified type
1.3. 选项
选项,简写 | 默认值 | 描述 | |
---|---|---|---|
-f, --format | 使用给定的 Go 模板格式化输出 | ||
-s, --size | 如果类型为容器,则显示文件总大小 | ||
--type | 返回指定类型的 JSON |
1.4. 示例
在大多数情况下,您可以以一种非常直接的方式从 JSON 中选择任何字段
- 获取实例的IP地址
$ 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
1.5. 获取实例的图像名称
$ 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
节包含内部端口映射到外部地址/端口对象列表的映射。要仅获取数字公共端口,可使用index查找特定的端口映射,然后index0包含其中的第一个对象。然后,我们要求该HostPort字段获取公共地址。
$ docker inspect --format='{{(index (index .NetworkSettings.Ports "8787/tcp") 0).HostPort}}' $INSTANCE_ID
- 获取JSON格式的小节 如果您请求的字段本身就是包含其他字段的结构,则默认情况下会获得内部值的Go样式转储。Docker添加了一个模板函数,json可以将该模板函数应用于以JSON格式获取结果。
$ docker inspect --format='{{json .Config}}' $INSTANCE_ID