1. 背景:
之前买了阿里云服务器,按理说没网ip是互通的(同一账号,同一vpc,同一安全组),但是就是跟某一台不通,是用docker-compose 部署的服务,怎么都找不到原因,在阿里售后工程师的帮助下,终于找到问题
2. 问题分析
以下虚机B的路由信息
# 查看路由信息
route -n
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.20.31.253 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-f042e9c026da
172.20.16.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
172.24.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-a4f7921a90c8
# docker 的路由信息是
Iface 是docker0
docker-compose 是br- 开头的
虚机A --> ping --> 虚机B
因为虚机A 是 172.24.3.5 属于172.24.0.0 网段,所有虚机A ping 虚机B的时候,直接到虚拟机了,并没有到B的宿主机
2. 问题解决
#先停止 docker-compose 创建的容器
docker-compose -f docker-compose.yml down
#删除docker-compose网桥
docker network rm a4f7921a90c8
#重启docker引擎
systemctl restart docker
以上这种方式, docker-compose 会重新分配一个IP段,只要跟其他ip段不冲突即可