Docker 从容器中获取特定信息

示例

您可以通过运行以下命令从容器中获取特定信息:

docker inspect -f '<format>' <container>

例如,您可以通过运行以下命令获取网络设置:

docker inspect -f '{{ .NetworkSettings }}' <container>

您还可以获取IP地址:

docker inspect -f '{{ .NetworkSettings.IPAddress }}' <container>

参数-f表示格式,并且将收到Go模板作为输入以格式化期望的格式,但这不会带来漂亮的回报,因此请尝试:

docker inspect -f '{{ json .NetworkSettings }}' {{containerIdOrName}}

json关键字将返回的结果作为JSON。

最后,一个小技巧是在其中使用python格式化输出JSON:

docker inspect -f '{{ json .NetworkSettings }}' <container> | python -mjson.tool

瞧,您可以在docker inspect上查询任何内容,并使它在终端中看起来很漂亮。

也可以使用名为“ jq”的实用程序来帮助处理docker inspect命令输出。

docker inspect -f '{{ json .NetworkSettings }}' aa1 | jq [.Gateway]

上面的命令将返回以下输出:

[

  "172.17.0.1"

]

此输出实际上是一个包含一个元素的列表。有时,docker inspect显示几个元素的列表,您可能要引用一个特定的元素。例如,如果Config.Env包含多个元素,则可以使用以下命令引用此列表的第一个元素index:

docker inspect --format '{{ index (index .Config.Env) 0 }}' <container>

第一个元素的索引为零,这意味着此列表的第二个元素的索引为1:

docker inspect --format '{{ index (index .Config.Env) 1 }}' <container>

使用len它可以获得列表中元素的数量:

docker inspect --format ‘{{ len .Config.Env }}’ <container>

使用负数,可以引用列表的最后一个元素:

docker inspect –format “{{ index .Config.Cmd $[$(docker inspect –format ‘{{ len .Config.Cmd }}’ <container>)-1]}}” <container>

一些docker inspect信息作为key:value的字典出现,这是docker inspect一个jess / spotify运行容器的摘录。

"Config": { "Hostname": "8255f4804dde", "Domainname": "", "User": "spotify", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "DISPLAY=unix:0", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", "HOME=/home/spotify" ], "Cmd": [ "-stylesheet=/home/spotify/spotify-override.css" ], "Image": "jess/spotify", "Volumes": null, "WorkingDir": "/home/spotify", "Entrypoint": [ "spotify" ], "OnBuild": null, "Labels": {} },

所以我得到了整个配置部分的值

docker inspect -f '{{.Config}}' 825

{8255f4804dde spotify false false false map[] false false false [DISPLAY=unix:0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/home/spotify] [-stylesheet=/home/spotify/spotify-override.css] false jess/spotify map[] /home/spotify [spotify] false [] map[] }

而且还有一个字段,例如Config.Image的值

docker inspect -f '{{index (.Config) "Image" }}' 825

jess/spotify

或Config.Cmd

docker inspect -f '{{.Config.Cmd}}' 825

[-stylesheet=/home/spotify/spotify-override.css]

以上是 Docker 从容器中获取特定信息 的全部内容, 来源链接: utcz.com/z/315757.html

回到顶部