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

Posted 左直拳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚拟机中docker承载的微服务注册到nacos无法访问问题相关的知识,希望对你有一定的参考价值。

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

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

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

操作步骤:

一、查看虚拟机的ip情况

运行命令:ip addr,得到

二、宿主机上添加路由

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容器

以上是关于虚拟机中docker承载的微服务注册到nacos无法访问问题的主要内容,如果未能解决你的问题,请参考以下文章

Nacos微服务注册地址为Docker内网IP的解决办法

如何在Docker下部署nacos并注册Java服务

服务注册与发现(Nacos)

阿里开源的微服务中间件 Nacos

SofaBoot使用Nacos进行服务注册发现

聊聊Nacos的服务注册和心跳检测