- Usage: docker inspect [OPTIONS] CONTAINER|IMAGE|TASK [CONTAINER|IMAGE|TASK...]
-
- Return low-level information on a container, image or task
-
- -f, --format Format the output using the given go template
- --help Print usage
- -s, --size Display total file sizes if the type is container
- values are "image" or "container" or "task"
- --type Return JSON for specified type, (e.g image, container or task)
默认情况下,以JSON数组格式输出所有结果。如果容器和镜像有相同的名称,当没有指定类型时将返回容器的JSON信息。如果指定了格式,给定的模式将格式化每个结果。
Go’s text/template描述了这个格式的所有细节。
示例
大多数情况,可以非常简单地从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
获取任务镜像名称
- $ docker inspect --format='{{.Container.Spec.Image}}' $INSTANCE_ID
列出所有绑定的端口
可以在结果中循环数组和映射以产生简单的文本输出:
- $ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID
查找一个指定的端口映射
当字段名以一个数字开头时,.Field语法就失效了,不过可以用模板语言的index函数实现。.NetworkSettings.Ports区块包含内部端口映射到外部地址/端口对象列表的映射。要获取数字公共端口,可以使用索引查找特定端口映射,然后索引0包含其中的第一个对象。 然后我们要求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