Docker格式化输出命令:”docker inspect –format” 学习记录

docker inspect 是 docker 命令之一,用于获取 docker 容器、镜像等详细信息,常用于查看某个容器的 IP 地址、挂载的数据卷等信息。而 docker inspect --format 则是用于格式化输出 docker inspect

"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” 学习记录

基础教程推荐