在上一次安装了Docker后,Docker会默认创建一个网卡,指定其中的地址,这个生成的地址与默认的存在冲突,通过修改Docker的配置文件,已经顺利将问题解决,请查看《Docker CentOS 网段与公司网段冲突》
在安装了Docker后,使用Docker-Compose发布应用,一直都可以正常使用,使用一段时间后,在公司突然发现无法连接到服务器了!
这下有点慌了,正常来讲,我安装Docker时,已经正常的处理了IP地址的问题,怎么还会出现冲突呢?
通过查看服务器的现有网卡,可以看到,确实有172.18和172.17地址段的IP地址存在于服务器中
sudo ip addr
我想,明明我都设置了Docker的地址段,怎么还可以出现冲突?,然后我反复的实验,使用Docker-Compose删除后再次重建
sudo docker-compose stop sudo docker-compose rm
sudo docker-compose up -d
原因:
然后通过查看服务器地址的时候,有时会创建172.17、172.18、172.19、172.20等网段,就是说这个是随机的,当正好创建的是冲突的网段,那就会导致服务器不可连接。
原因是,在Docker-Compose up -d这个命令运行的时候,会为系统创建一个网络
参考地址:https://blog.csdn.net/gezhonglei2007/article/details/51627969
解决方法
2020-05-12 如果按以下的网络进行处理,还是会有冲突,最终导致服务不可用,而且容易出现无法连接到服务器的情况
在首次运行容器前,先手动创建一个名为mes_net的Docker网络,并且手动的指定它的子网地址为172.20.XXX.XXX网段
docker network create --driver=bridge --subnet=172.20.0.0/16 mes_net
经过调整,在Docker-Compose的yaml文件中指定了网络
最终,实现了指定的网络
已经恢复了对服务器的访问
参考地址:https://docs.docker.com/compose/compose-file/#network-configuration-reference
参考文章:《https://blog.csdn.net/gezhonglei2007/article/details/51627969》