开发中的Docker-Compose – pipe理子网

目前,我正在使用Docker-Compose开发一个小团队。 我将描述我们目前正在面对的设置和场景。

我们有一个项目签入我们的VCS。 开发者检查了这一点,做一个“docker – 组成”,所有在一个主机,但在家庭文件夹。 这将创build默认networking,并自动将一个子网分配给新的默认networking(迄今为止,“docker-compose”)。 这对我们来说是非常好的,因为它将开发环境彼此隔离开来,并允许我们在Compose文件中使用命名的服务来访问我们的数据库等 – 所有这些都不需要脚踏实地,开发人员也不需要手动configuration任何东西。

这个障碍是 这个默认networking有一个不断增加的子网172。*。0.0。 直到我们到达公司networking上正在使用的子网为止。 例如:我们的VPN使用172.19.0.0。 我们有大约4或5个这样的子网,当有足够的开发人员启动堆栈时,我们会创build访问问题。

其他人如何使用Docker Compose来pipe理这种情况以进行开发?

从本质上讲,我们有许多运行Docker的主机,每个应用程序上有许多不同的应用程序和许多开发人员。 在撰写文件中定义一个子网; 每个用户; (确保所有子网是唯一的,无论主机是什么)将成为一个绝对的噩梦来pipe理,并可能成为电子表格pipe理的一个练习。

我甚至找不到一种强制Docker-Compose来使用不同的子网范围的方法,比如10.0.0.0等 – 这对我们的公司networking来说是很好的。

任何帮助这种configuration将不胜感激。 当然其他人使用Docker-Compose来创build开发环境?

问候

dockernetworking的configuration不在docker组成,而是在守护进程configuration本身。 你想要做的就是改变默认的networking--bip=10.110.0.1/16用法,通过传递--bip=10.110.0.1/16 (最后要注意1,因为你需要一个有效的docker绑定的IP)docker守护程序启动脚本。

由于您没有提供关于您操作系统的信息,您可以简单地尝试执行

 docker daemon --bip=10.110.0.1/16 

将networking更改为10.110.0.0/16

在我的OpenSuse框中,我编辑了/etc/sysconfig/docker DOCKER_OPTS="--bip=10.110.0.1/16" ,在这里我设置了DOCKER_OPTS="--bip=10.110.0.1/16"来获得相同的结果。

进一步的说明见官方文件:

  • 如何将Docker Engine的默认网桥(docker0)networkingconfiguration到不同的子网?
  • 自定义docker0桥