0
点赞
收藏
分享

微信扫一扫

虚拟机中docker承载的微服务注册到nacos无法访问问题


今天将一个项目中的部分子系统部署,部署到虚拟机的docker里运行,结果外部无法访问。查看nacos,显示服务已经成功注册。

虚拟机中docker承载的微服务注册到nacos无法访问问题_docker


后来发现,该服务的IP地址外部无法访问:

虚拟机中docker承载的微服务注册到nacos无法访问问题_docker_02


估计172.17.0.0是docker自身的网段,在上面跑的程序,注册到nacos,直接就用到了docker里的地址。因为对于应用程序来说,docker是容器,就是一个操作系统。解决办法是,在虚拟机的宿主机上添加对该地址的路由。我的虚拟机装在windows下,即在windows里添加路由。

虚拟机中docker承载的微服务注册到nacos无法访问问题_docker_03


操作步骤:

一、查看虚拟机的ip情况

运行命令:ip addr,得到

虚拟机中docker承载的微服务注册到nacos无法访问问题_注册到nacos_04

二、宿主机上添加路由

C:\Users\cq>route add -p 172.17.0.0/16 192.168.144.128
操作完成!

注意地址来自于虚拟机的ip信息。172.17.0.0/16,说明该IP的子网掩码为16位,172.17.0.0是子网地址,172.17.0.255是该子网的广播地址。192.168.144.128是虚拟机对外地址。见步骤一。

如果要删掉该路由,就是

route delete 172.17.0.0

如此,搞定矣。

参考文章:
​​​Windows访问Linux虚拟机里面的Docker容器​​


举报

相关推荐

0 条评论