部署项目时,由于是在甲方公司部署,一切都是甲方提供,

甲方提供的服务器是 网关172.xx  的。

部署docker时,忽视了docker默认docker0网桥的网关也是172.xx

所以就出现了 启动docker后就直接断网,远程连接不上服务器了,重启服务器也可以链接上,重启docker又连接不上。

可以设置docker默认网关 :

vim  /etc/docker/daemon.json   //如果没有该文件,请新建。

{

  "bip": "192.168.1.1/24"   #自定义docker0 网桥

}

 

如果是用docker-compose 启动服务时, docker-compose 默认也会启一个网桥,而且是以宿主机的网关为网关的网桥。

所以这才是出问题的罪魁祸首。一用docker-compose 启动服务,立马断网。

可以通过配置 docker-compose.yml内 给启动的容器配置参数

network_mode: "bridge"   //这是可以使用docker 默认网桥docker0或者其他非宿主机网关也行。当然前提是docker0 已经设置为与宿主机网桥不同网关段。

如果是已经使用docker-compose 启动过服务,这时候重启docker,docker会默认尝试运行那个容器,那个容器的网关还是之前的网关所以还是会出现断网问题,这个时候只能删除掉容器,卸载docekr,重装都不行,因为docker容器还在,如果docker删除干净连带着容器一起删除应该是可以的。

如果 192 也冲突了  还是可以使用 10.xx 

一般这种情况很少出现 一般内网都是192的。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐