如何解决如何列出网络;一个码头集装箱附加到使用格式模板?
当我要检查桥驱动程序连接的容器列表时,请执行以下操作,
docker network inspect br01 --format='{{range .Containers}}{{println .Name}}{{end}}'
哪个给出以下输出,
network-test01
network-test02
network-test03
但是如何列出容器所连接的网络驱动程序呢?
以下是docker inspect,
.....
"Networks": {
"br01": {
"IPAMConfig": {},"Links": null,........
},"bridge": {
"IPAMConfig": null,.....
}
.....
我只想列出以下网络,
br01
bridge
我尝试了以下操作,但是由于我对go模板的了解有限,因此无法正常使用该模板。
docker inspect network-test01 --format "{{.NetworkSettings.Networks}}"
结果如下,
map[br01:0xc0000f6180 bridge:0xc0000f6cc0]
解决方法
以下模板将仅输出网络名称:
{{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}}'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。