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
瞧,您可以在dockerinspect上查询任何内容,并使它在终端中看起来很漂亮。
也可以使用名为“jq”的实用程序来帮助处理dockerinspect命令输出。
docker inspect -f '{{ json .NetworkSettings }}' aa1 | jq [.Gateway]
上面的命令将返回以下输出:
[ "172.17.0.1" ]
此输出实际上是一个包含一个元素的列表。有时,dockerinspect显示几个元素的列表,您可能要引用一个特定的元素。例如,如果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>
一些dockerinspect信息作为key:value的字典出现,这是dockerinspect一个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":{}},
所以我得到了整个配置部分的值
dockerinspect-f'{{.Config}}'825
{8255f4804ddespotifyfalsefalsefalsemap[]falsefalsefalse[DISPLAY=unix:0PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binHOME=/home/spotify][-stylesheet=/home/spotify/spotify-override.css]falsejess/spotifymap[]/home/spotify[spotify]false[]map[]}
而且还有一个字段,例如Config.Image的值
dockerinspect-f'{{index(.Config)"Image"}}'825
jess/spotify
或Config.Cmd
dockerinspect-f'{{.Config.Cmd}}'825
[-stylesheet=/home/spotify/spotify-override.css]