为了账号安全,请及时绑定邮箱和手机立即绑定

如何列出网络;使用格式模板附加 docker 容器?

如何列出网络;使用格式模板附加 docker 容器?

Go
达令说 2022-06-27 17:16:46
当我想检查桥驱动程序连接到的容器列表时,我执行以下操作,docker network inspect br01 --format='{{range .Containers}}{{println .Name}}{{end}}'这给出了以下输出,network-test01network-test02network-test03但是如何为列出容器连接的网络驱动程序做同样的事情呢?以下是 docker 检查,.....            "Networks": {                "br01": {                    "IPAMConfig": {},                    "Links": null,                    ........                },                "bridge": {                    "IPAMConfig": null,                    .....                }.....我只想列出如下网络,br01bridge我已经尝试了以下方法,但由于我对 go 模板的了解有限,因此无法正确使用该模板。docker inspect network-test01 --format "{{.NetworkSettings.Networks}}"结果如下,map[br01:0xc0000f6180 bridge:0xc0000f6cc0]
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

以下模板将仅输出网络名称:


{{range $k, $v := .NetworkSettings.Networks}}{{println $k}}{{end}}

示例 Go 代码对其进行测试:


m := map[string]interface{}{

    "NetworkSettings": map[string]interface{}{

        "Networks": map[string]interface{}{

            "br1":    struct{}{},

            "bridge": struct{}{},

        },

    },

}


t := template.Must(template.New("").Parse("{{range $k, $v := .NetworkSettings.Networks}}{{println $k}}{{end}}"))


if err := t.Execute(os.Stdout, m); err != nil {

    panic(err)

}

哪些输出(在Go Playground上尝试):


br1

bridge

所以使用以下命令:


docker inspect network-test01 --format '{{range $k, $v := .NetworkSettings.Networks}}{{println $k}}{{end}}'

另请注意,该docker命令还将在每个项目之后输出一个换行符,因此println可以省略调用:


docker inspect network-test01 --format '{{range $k, $v := .NetworkSettings.Networks}}{{$k}}{{end}}'


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信