如何更改Docker的默认子网大小?

我不知道是否有任何方式来影响默认的子网大小和创buildnetworking时使用的地址池没有任何参数。

重现问题的步骤:1)获取一个新的VM与Docker(Ubuntu 16.04,在我的情况下,Docker 1.12.3)2)尝试创build50个networking:

for i in {1..50}; do docker network create net-$i; done 

在某些时候,你会开始犯错3)看结果:

 for i in $(docker network ls -q); do docker network inspect --format='{{.Name}} {{.IPAM.Config}}' $i; done 

输出如下所示:

 net-1 [{172.18.0.0/16 172.18.0.1/16 map[]}] net-2 [{172.19.0.0/16 172.19.0.1/16 map[]}] net-3 [{172.20.0.0/16 172.20.0.1/16 map[]}] net-4 [{172.21.0.0/16 172.21.0.1/16 map[]}] net-5 [{172.22.0.0/16 172.22.0.1/16 map[]}] net-6 [{172.23.0.0/16 172.23.0.1/16 map[]}] net-7 [{172.24.0.0/16 172.24.0.1/16 map[]}] net-8 [{172.25.0.0/16 172.25.0.1/16 map[]}] net-9 [{172.26.0.0/16 172.26.0.1/16 map[]}] net-10 [{172.27.0.0/16 172.27.0.1/16 map[]}] net-11 [{172.28.0.0/16 172.28.0.1/16 map[]}] net-12 [{172.29.0.0/16 172.29.0.1/16 map[]}] net-13 [{172.30.0.0/16 172.30.0.1/16 map[]}] net-14 [{172.31.0.0/16 172.31.0.1/16 map[]}] net-15 [{192.168.0.0/20 192.168.0.1/20 map[]}] net-16 [{192.168.16.0/20 192.168.16.1/20 map[]}] net-17 [{192.168.32.0/20 192.168.32.1/20 map[]}] net-18 [{192.168.48.0/20 192.168.48.1/20 map[]}] net-19 [{192.168.64.0/20 192.168.64.1/20 map[]}] net-20 [{192.168.80.0/20 192.168.80.1/20 map[]}] net-21 [{192.168.96.0/20 192.168.96.1/20 map[]}] net-22 [{192.168.112.0/20 192.168.112.1/20 map[]}] net-23 [{192.168.128.0/20 192.168.128.1/20 map[]}] net-24 [{192.168.144.0/20 192.168.144.1/20 map[]}] net-25 [{192.168.160.0/20 192.168.160.1/20 map[]}] net-26 [{192.168.176.0/20 192.168.176.1/20 map[]}] net-27 [{192.168.192.0/20 192.168.192.1/20 map[]}] net-28 [{192.168.208.0/20 192.168.208.1/20 map[]}] net-29 [{192.168.224.0/20 192.168.224.1/20 map[]}] net-30 [{192.168.240.0/20 192.168.240.1/20 map[]}] 

因此,Docker使用RFC1918networking172.16 / 12和192.168 / 16和networking掩码,将networking划分为16个子网。

我想知道是否有任何方法来影响这种行为。 我在我的CIpipe道中使用docker-compose来部署应用程序,我强烈希望避免在docker-compose.yml文件中对networking进行硬编码,因为这会破坏它的可移植性。