【问题标题】:Get bridge name associated to docker Network获取与 docker Network 关联的网桥名称
【发布时间】:2020-01-08 14:42:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: networking docker docker-networking


    【解决方案1】:

    网桥名称不是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-${network_id: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)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 2023-03-31
    • 2015-04-09
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多