如何在一台服务器上增加最大 Docker 网络?

How to increase maximum Docker Network on one server?

在我的电脑里,我可以创建更多的最大 29 Docker Network,像那样。

for num in `seq -w 100`; do
    echo "Create network: $num"
    docker network create $num
done

创建 29 Docker Network 后,出现错误:

Error response from daemon: failed to parse pool request for address space "LocalDefault" pool "" subpool "": could not find an available predefined netw
ork

我的问题:如何在一台服务器上增加最大Docker网络?

因为我以前测试过很多docker-compose应该需要更多的网络。

谢谢。

对于每个网络,docker保留一个私有IP池并保留一个IP地址范围。

这里定义了私有地址范围(https://en.wikipedia.org/wiki/Private_network)。

Docker 使用以下池:

172.17.0.0/16 - 172.31.0.0/16 - 15

192.168.0.0/20 - 192.168.224.0/20 - 15

默认桥接网络占用 1。这就是为什么您看到限制为 29。此限制不适用于覆盖网络等其他网络。

我使用了这个指南:https://docs.docker.com/compose/compose-file/#ipv4_address-ipv6_address

我为每个 docker-compose 组设置了一个子网,如 172.10.10.0/24。

/web1/ 将有一个 docker-compose with 172.1.0.0/24 /web2/ 将有一个 docker-compose 与 172.2.0.0/24

如果您想在不破坏现有 containers/networks 的情况下扩展网络限制,请编辑:/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.