如何更改docker桥地址空间(子网)?

我有一个docker-compose的问题。 目前,我的堆栈容器是在自己的自定义隔离networking中创build的,它是基于桥梁的。 例如,当运行docker-compose -p client1 up -d ,会创build一个名为client1_default的networking,其子网172.18.0.9/16是一个大的子网( /16 )。

我不需要这么大的子网, /24就够了。

问题是,使用这个当前的设置,我被限制在大约25个堆栈,因为docker(或libnetwork)用完了地址空间。 用/24地址空间我会好得多,因为那样会有更多的可用空间。

所以第一个问题是:如何在不编辑docker-compose.yml文件的情况下使docker-compose.yml (和docker-compose)默认使用/24子网。 我知道这是可能的,但它需要编辑每个客户端的.yml文件或创build一个覆盖.yml。 这是不理想的。

如果这是不可能的,我已经通过libnetwork代码进行了search,发现(有一个“宽”和“粒”的地址空间,默认情况下,它使用“宽”)。 我怎样才能让docker使用粒度地址空间?
我在这里读到

例如, 如果configuration中没有另外指定 ,则libnetwork将从桥接networking的默认本地地址空间请求地址池,而从覆盖networking的默认全局地址空间请求。

那么我的问题是:如何在configuration中指定它 ? 什么是提到的configuration? 什么是改变这种行为的语法?

提前致谢!

你可能要考虑使用CoreOS的flanneld https://github.com/coreos/flannel然后,你可以很容易地configuration它通过简单的HTTP请求etcd。 此外,您将为所有容器(甚至在不同的主机上运行)获得单个虚拟化networking。 如果您决定在未来扩大规模,这可能会很有用。