微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何过滤“docker inspect”输出以便只显示某些标签:值对?

如何解决如何过滤“docker inspect”输出以便只显示某些标签:值对?

我创建了一个简单的桥接网络并附加了几个容器。

如果我发出 docker network inspect webservers 命令,我会得到很多输出,我想过滤掉大部分。

例如,我想检查每个现有容器的 IPv4Address 值。示例 json 块如下所示:

"Containers": {
"2868125fa1f1b97fd765f7d6bd61d1d8eff3e9cb16ea6c3d5625ce1d331932b9": {
"Name": "tomcat","EndpointID": "36d35901e11d4b5be5336aa90e5161eca82c3a24f3661901461f3bfed2b2a2d3","MacAddress": "02:42:ac:14:00:03","IPv4Address": "172.20.0.3/16","IPv6Address": ""
},

所以我试图通过使用“.Containers.IPv4Address”来提取 IP 地址信息,但输出“没有价值”:

kamo@uBox:~$ docker inspect -f '{{ .Containers.IPv4Address }}' webservers
<no value>
kamo@uBox:~$

我还尝试了一个带有“range”参数的东西:

docker inspect -f '{{ range .Containers.IPv4Address }} {{ .IPv4Address }} {{ end }}' webservers

但它没有产生任何输出

那么如何使用 --format 参数提取 IPv4Address 信息?

如果我想从每个容器中提取 2 个值 - “名称”和“IPv4Address”怎么办?

解决方法

为了按照您尝试的方式实现它,因为您有一个容器列表,您必须使用 rangem 在网络中检查输出的容器列表上进行迭代。

你可以这样实现: docker network inspect webservers -f '{{ range.Containers}}{{.IPv4Address}}{{end}}'

但是如果您尝试获取容器的所有 IPv4Addresses,请尝试使用以下命令: docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

祝你好运:)

,

没关系 Go 模板,我会用 awk 代替:

kamo@ubox:~$ docker inspect  webservers | awk '/Containers/,/Options/'
        "Containers": {
            "2868125fa1f1b97fd765f7d6bd61d1d8eff3e9cb16ea6c3d5625ce1d331932b9": {
                "Name": "tomcat","EndpointID": "36d35901e11d4b5be5336aa90e5161eca82c3a24f3661901461f3bfed2b2a2d3","MacAddress": "02:42:ac:14:00:03","IPv4Address": "172.20.0.3/16","IPv6Address": ""
            },"aab8df61e3763ae4a4f8a17235a98c20eb67c0ee22526eb4d2091beed358d30b": {
                "Name": "redis","EndpointID": "f64c8601a38bcba7d9446105efc6827b0c744f5954ff2cabc860fe9cabdfea7e","MacAddress": "02:42:ac:14:00:02","IPv4Address": "172.20.0.2/16","IPv6Address": ""
            }
        },"Options": {},kamo@ubox:~$ 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。