虚拟机docker网络问题处理

问题

  • 我们有2台设备,ip 为 172.20.30.1 172.20.30.2 ,虚拟机上的服务需要连接这2台设备,网络已经做通了,可以正常连接
  • 虚拟机异常关闭,重新开启后。发现服务有些问题,就打算将docker服务重新部署,删除了已有的容器和网络,重新创建和启动
  • 各个服务启动正常,但是这2台设备连不上了
  • 在虚拟机里ping了下,确实访问不到设备了。进入虚拟机所在物理机,ping了下是通的,虚拟机和物理机在一个网段,按理应该一样才对
  • 使用telnet进入设备里面,在设备里面 ping了下虚拟机和物理机,发现虚拟机(*.*.140.87)不行,物理机(*.*.140.88)可以
    虚拟机docker网络问题处理_第1张图片

处理

  • 首先,虚拟机异常关闭前,网络是没问题的。其次,两台设备在线,可以正常联通。最后,同网段的物理机可以和设备正常联通。

  • 那肯定是虚拟机网络出问题了。

  • 发现其中一个docker服务虚拟ip 分配了 172.20.0.10,感觉不太对
    虚拟机docker网络问题处理_第2张图片

  • 使用 ip addrifconfig 查看后,发现docker 虚拟ip 地址 分配了个 172.20.0.1 ,问题肯定就是这个了。

  • 将docker服务再次删掉,并将docker网络都删掉,重新创建docker网络 172.17.0.1 ,没问题了

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
docker network ls
docker network prune
docker network create signal-network
docker-compose up -d
  • 由于自己局域网使用,设备ip设置都是内网地址。docker里network生成的地址也是内网地址,一不注意还真冲突了

你可能感兴趣的:(Linux,异常报错,网络,docker,容器)