获取与docker Network关联的网桥名称

时间:2016-03-15 21:14:19

标签: networking docker docker-networking

我正在使用" docker network create -d bridge mynet"创建一个docker网络。我想获得与此docker网络关联的网桥名称。

我知道我可以使用" -o"提供桥名。例如:" docker network create --d bridge -o com.docker.network.bridge.name = mybridge mynet"。这种方法适用于普通的桥驱动程序,但在我的情况下,我使用的是ovs驱动程序,因此我正在启动网络,因为#34; docker network create --d ovs mynet"。如果我使用" -o"在ovs驱动器的情况下,它不起作用。

请建议我一种方法来获取与网络相关联的网桥名称。我创建网络时创建的新桥,用它创建的桥有一个随机名称,我可以使用" ifconfig"命令。

1 个答案:

答案 0 :(得分:3)

网桥名称不是docker network inspect输出的一部分,但它总是br-<first 12 characters of network id>(除非在使用-o com.docker.network.bridge.name=<bridge name>创建网络时明确指定)。

network_id=$(docker network inspect -f {{.Id}} <network name>)
bridge_name="br-${brige_name:0:12}"

另一种选择是依赖于网桥作为网络的默认网关,因此其IP地址和网络的网关地址是相同的。

network_gateway=$(docker inspect \
    -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}' <network name>)
bridge_name=$(ifconfig | grep -B1 "inet $network_gateway" | head -1 | cut -d: -f1)