我有多个开发站点,需要进行dockerise和在本地运行。我需要给它们提供固定的IP,因为它们使用来自服务的回调,而这些服务需要始终命中相同的IP。
在我的第一个docker堆栈上,它运行完美
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哪里有不同的子网?还是我弄错了?
最佳答案
子网掩码/16
表示网络前缀是地址的前16位,或者换句话说,是前两个数字-172.18.
。在这种情况下,它们实际上是重叠的。您必须将子网掩码更改为/24
或使用其他网络前缀,即172.18.
,172.19.
,172.20.
等。
关于docker - docker-compose无法与网络产生网络冲突,网络具有重叠的IPv4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49059948/