记一次VMware NAT模式下navicat访问centos7 docker mysql 失败
转载请注明出处,原文地址:https://blog.****.net/qq_39309348/article/details/106935128
背景
使用vmware创建了centos7的虚拟机,然后安装了docker,之后在docker部署了mysql,由于不想mysql重启之后ip变化,于是自定义了network:chihoi-net,子网:192.168.0.0,网关:192.168.0.1。之后mysql的映射也是没问题的。
centos ip 192.168.132.4 centos ping mysql:192.168.0.200,ping通了 centos 和主机window:192.168.1.3 互通
到这里,按道理来说已经没有问题了,我只要在window下用navicat访问192.168.132.4:3306,就会映射到mysql。
但是发现,怎么样都没办法连接上去,mysql的远程连接权限也开启了。
解决过程
-
因为平时使用的是桥接,那么第一时间当然是常试更换桥接模式看看有没有问题。
-
后面发现桥接模式依旧不可以。
-
于是我就不用自定义的network:chihoi-net了。
-
改用默认的bride,发现没有问题,navicat成功了,NAT模式下依旧是可以
-
那么问题就定位了,是自定义network出了问题,究竟是什么问题呢?网段?还是什么?
-
于是我把自定义时候的网段改成了172.10,网关是172.10.0.1,navicat成功连上
-
然后我又用了192.167.0.1,发现这个也没问题,那么,锁定问题,192.168这个网段不行。
结论
docker在创建自定义网络时,如果使用172.10的网段,会报错,网段已经被使用。 但是docker没办法检测centos使用的是哪个网段,所以当你使用192.168时,就和centos的冲突了,但是也不报错。
这时候,只要不使用192.168的网段就皆大欢喜了。
问题解决,告一段落
NAT模式下和桥接模式下的图
NAT
桥接
喜欢的点个赞呗