如何更改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? 什么是改变这种行为的语法?
提前致谢!
目前不可能,请参阅https://github.com/moby/moby/issues/21776 + https://github.com/moby/moby/pull/29376但是,您可以参与讨论并投票。
你可能要考虑使用CoreOS的flanneld https://github.com/coreos/flannel然后,你可以很容易地configuration它通过简单的HTTP请求etcd。 此外,您将为所有容器(甚至在不同的主机上运行)获得单个虚拟化networking。 如果您决定在未来扩大规模,这可能会很有用。
- 如何检查正在运行的Docker容器
- 为什么我的节点容器忽略我在docker-compose.yml中设置的环境variables?
- 如何识别运行jenkins容器时使用的docker host ip
- 如何扩展docker mysql映像
- Magento静态内容不在Docker Image内部生成
- Docker中的量angular器testing – asynchronouscallback没有在由jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时
- Laravel应用程序CI与Docker&Gitlab
- 将Docker父主机IP插入容器的主机文件
- 如何为Docker Hub的图片“docker-compose up”