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

4

我正在尝试创建多个用户定义的桥接网络。但似乎docker每台主机只能创建31个用户定义的桥接网络。那么,我能在我的机器上增加超过31个网络吗?是否有人知道我该如何做到这一点,如何配置我的主机?感谢您的时间!

3个回答

1

请查看this

这是因为它使用硬编码的广域网段列表-172.17-31.x.x/16和192.168.x.x/20-用于桥接网络驱动程序。

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

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

1

您可以扩展网络限制编辑:/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
前两个是默认的docker地址池,最后一个是私有网络之一。
通过这个更改,您可以额外获得255个网络。新容器将连接到新的地址池10.99.0.0/16。

https://serverfault.com/questions/916941/configuring-docker-to-not-use-the-172-17-0-0-range/936255#936255 - Kevin O.

1
自 Docker 18.06 版本开始,分配范围可以在守护进程配置中进行自定义设置:

/etc/docker/daemon.json

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

这个例子将从一个/16的范围内创建一个/24子网池,将桥接网络限制从31增加到255。如有必要,可以添加更多的子网池。请注意,这将限制每个网络连接的容器数量约为254个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接