Docker 限制用户定义的桥接网络

Docker limit user-defined bridge networks

我正在尝试创建许多用户定义的桥接网络。但似乎 docker 只能为每个主机创建 31 个用户定义的桥接网络。那么,我可以为我的机器增加超过 31 个网络吗?没有人知道我该怎么做,如何配置我的主机?谢谢你的时间...^^

看看this

This is due to the fact that it uses hardcoded list of broad network ranges – 172.17-31.x.x/16 and 192.168.x.x/20 – for bridge network driver.

您可以通过为每个创建的网络手动指定子网来解决此问题:

for net in {1..50} 
do 
  docker network create -d bridge --subnet=172.18.${net}.0/24 net${net}
done

自 Docker 版本 18.06 以来,可以在 daemon configuration 中自定义分配范围,如下所示:

/etc/docker/daemon.json

{
  "default-address-pools": [
    {"base": "172.17.0.0/16", "size": 24}
  ]
}

此示例将创建 /24 个超出 /16 范围的子网池,将网桥网络限制从 31 增加到 255。可以根据需要添加更多池。请注意,这将每个网络连接的容器数量限制为大约 254 个。

你可以扩展网络限制编辑:/etc/docker/daemon.json:

{
   "default-address-pools": [
        {
            "base":"172.17.0.0/12",
            "size":16
        },
        {
            "base":"192.168.0.0/16",
            "size":20
        },
        {
            "base":"10.99.0.0/16",
            "size":24
        }
    ]
}

(如果不存在则添加参数),然后sudo service docker restart

前两个是default docker address pools, last is one of the private network

通过此更改,您还有 255 个网络。新容器附加到新地址池 10.99.0.0/16.