"docker inspect" 是 docker 命令之一,用于获取 docker 容器、镜像等详细信息,常用于查看某个容器的 IP 地址、挂载的数据卷等信息。而 "docker inspect --format" 则是用于格式化输出 docker inspect 命令的结果,以方便程序或脚本的处理。本攻略将详细讲解 "docker inspect --format" 的使用及示例说明。
一、格式化输出 docker inspect 的结果
在默认情况下,docker inspect 命令返回的是 JSON 格式的字符串,不便于阅读、分析和处理。而使用 "docker inspect --format",则可以将输出的 JSON 格式字符串转换为其他可读性更好的格式,比如直接输出某个字段的值,或以自定义格式输出多个字段的值。
格式化输出 docker inspect 的结果需要指定格式化字符串,格式化字符串遵循 Golang 模板语法。常用的格式化占位符有:
{{.ID}}
:容器、镜像等 ID{{.Name}}
:容器、镜像等名称{{.State.Status}}
:容器状态{{range .Mounts}}{{.Destination}}:{{.Source}}:{{end}}
:遍历容器中所有挂载的数据卷,输出其目标路径和源路径。
下面将通过具体的示例演示如何使用。
二、示例一:获取容器 IP 地址
想要获取某个容器的 IP 地址,一般需要使用 docker inspect 命令。而使用 --format 参数,则可以只输出容器的 IP 地址。
$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' <容器名称或ID>
示例输出为:
172.18.0.4
说明:
- 上述命令中的 {{ .NetworkSettings.IPAddress }} 占位符表示输出容器的 IP 地址字段,该字段位于容器的 NetworkSettings 属性中。
三、示例二:获取容器所有挂载的数据卷
想要获取某个容器所有挂载的数据卷的信息,可以使用 docker inspect 命令,并在 --format 参数中使用 range 函数来遍历容器的 Mounts 属性,输出挂载的数据卷的源路径(HostPath)和目标路径(DestinationPath)。
docker inspect --format '{{range .Mounts}}{{.Destination}}:{{.Source}}:{{end}}' <容器名称或ID>
示例输出为:
/var/lib/mysql:/home/data/mysql:/usr/bin/mysql:/usr/local/mysql:/app/code:/home/code:
说明:
- 上述命令中的 {{range .Mounts}} 表示遍历容器中的所有数据卷 Mounts,而 {{.Destination}} 和 {{.Source}} 则表示数据卷的目标路径和源路径。
四、总结
本攻略介绍了 "docker inspect --format" 命令及其使用方法,该命令可以很方便地将 docker inspect 命令的结果进行格式化输出,以便于程序或脚本进一步处理。同时,我们提供了两个实际的示例来演示如何使用该命令。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker格式化输出命令:”docker inspect –format” 学习记录 - Python技术站