我有一些我需要在本地停靠和运行的开发站点。我需要给他们固定的IP,因为他们使用需要始终命中相同IP的服务的回调。
在我的第一个码头工作堆上,它完美运行
php-fpm:
image: php:fpm
container_name: site1-php-fpm
working_dir: /application
networks:
site1:
ipv4_address: 172.18.0.5
.......
.......
.......
networks:
site1:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
我可以通过yaml文件中指定的172.18.0.1/2/3/4/5访问服务。尝试创建下一个网站时出现问题:
php-fpm:
image: php:fpm
container_name: site1-php-fpm
working_dir: /application
networks:
site2:
ipv4_address: 172.18.1.5
.......
.......
.......
networks:
site2:
driver: bridge
ipam:
config:
- subnet: 172.18.1.0/16
我的计划是使用172.18.1.0,172.18.2.0,172.18.3.0 .....等等但我收到此错误:
cannot create network bc0ef736dbefd4622b5ca304e35fe8be3d071fc86ad45b41a161ea300c9ef929 (br-bc0ef736dbef): conflicts with network 2a52c21c5e042d56c47c032d78141c3413766ec6fb248e3a69ee9f794f38b70a (br-2a52c21c5e04): networks have overlapping IPv4
我认为172.18.0.0和172.18.0.1在哪里有不同的子网?或者我错了吗?
答案 0 :(得分:2)
子网掩码/16
表示网络前缀是地址的前16位,或者换句话说前两个数字 - 172.18.
。在这种情况下,他们真的重叠。您必须将子网掩码更改为/24
或使用不同的网络前缀,即172.18.
,172.19.
,172.20.
等。
答案 1 :(得分:2)
我有一个类似的错误:
使用驱动程序“ bridge”创建网络“ elk_network1” 错误:无法创建网络c64ac781783d8f020494700bedd0f4eed5751e1138f825ef91402134f395dd17(br-c64ac781783d):与网络2d48f2e1eb3d16e16e958e52f4a2b48f5424e62eb961ebecce4e4d4f4d4f4d4f4d4f4e4d4f4e2d4f4e4d4f4e2d4f4e4d4f2e4e4e4e4e4e4e4e4d4f4e2d4f4e4d4f4e2d4f4e4d4f4d2f4d4f4e2d4f4e4d4f4e2d4f4e4d4f4e4d4f4e2d4f4e4d4f2d4f4e4d4f4e2d4f4e4d4f4d2f4e4e4e4e4e4e4e4b2b2b4b0b0b0b0b4c
我已经按照以下步骤解决了这个问题:
列出所有网络
$ ip a
如果您看到br-2d48f2e1eb3d
之类的网桥并且其状态为关闭,则将其删除
$ brctl delbr br-2d48f2e1eb3d
然后重新启动docker
$ service docker restart
再次运行docker-compose
。这样docker-compose
会运行良好。
但是根据您的情况,您首先需要将网络掩码更改为/24
。