Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker inspect 常用命令。

1、docker inspect 简介

docker inspect用于返回Docker对象的低级信息,docker inspect提供Docker控制的构造的详细信息。默认情况下,docker inspect将以JSON数组的形式呈现结果。

2、docker inspect 语法

docker inspect [OPTIONS] NAME|ID [NAME|ID...]

参考文档https://docs.docker.com/engine/reference/commandline/inspect/

1)格式化输出(--format)

如果指定了格式,则将对每个结果执行给定的模板。 Go的文本/模板包描述了格式的所有细节。

2)指定目标类型(--type)

--type container|image|node|network|secret|service|volume|task|plugin

docker inspect命令通过ID或名称匹配任何类型的对象。在某些情况下,多种类型的对象(例如,一个容器和一个卷)使用相同的名称存在,使得结果不明确。

要将docker检查限制为特定类型的对象,请使用--type选项。

docker inspect --type=volume myvolume

3)检查容器的大小(-s,--size)

--size或简写的-s选项会向docker检查输出中添加两个额外的字段。此选项仅适用于容器。容器不需要运行,它也适用于停止的容器。

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

3、docker inspect 命令

1)获取实例的IP地址

在大多数情况下,可以相当直接地从JSON中取出任何字段

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

2)获取实例的MAC地址

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

3)获取实例的日志路径

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

4)获取实例的镜像名称

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

5)列出所有端口绑定

可以在结果中遍历数组和映射,以生成简单的文本输出:

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

6)找到一个特定的端口映射

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

7)获取JSON格式的结果

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

4、选项说明

命令

描述

--format , -f

使用自定义模板格式化输出

‘json’:以json格式打印 

‘TEMPLATE’:使用给定的Go模板打印输出。

有关使用模板格式化输出的更多信息,

请参阅https://docs.docker.com/go/formatting/

--size , -s

如果类型为容器,则显示文件的总大小

--type

返回指定类型的JSON

推荐文档

相关文档

大家感兴趣的内容

随机列表