解决Docker打包Eureka注册中心,其他服务无法注册问题

​前言

本文主要是介绍利用docker打包Eureka注册中心,并且发布镜像到服务器,遇到的一个比较坑的问题。主要是服务镜像部署完毕之后,docker容器都能启动,并且也能访问,但是其他服务就是无法注册到注册中心。排除问题,本地注册是没有问题,所以应该是服务注册eureka的ip地址写错了,我试了很多种,把ip改为127.0.0.1、本地ip都不行。最终解决办法是,需要修改为eureka的docker容器的ip。希望通过分享本次Docker打包Eureka注册中心遇到的问题,能够给目前正在学习该知识点的同学一点帮助。

问题重现

Eureka访问,发现没有服务注册上来,很显然这个问题可能是由于Docker容器之间的网络问题或Eureka服务配置问题导致的,才会导致其他服务没发注册到注册中心。

进入docker各个微服务的容器中,通过查看日志发现了几个报错内容。

第一个是,注册中心连接超时,有可能是Docker网络中,容器之间无法通过容器名称相互访问,导致微服务请求连接注册中心的时候超时。

另一个报错信息是,Host不可以,这个报错信息就很明显了,可能是微服务的application.yml或application.properties文件中的eureka.client.serviceUrl.defaultZone配置不正确。这个配置决定了其他服务将要注册的Eureka服务的URL。所以要检查URL中的主机名和端口号与Eureka服务的实际配置相匹配。

解决办法

由于docker各个容器之间共享同个网络,所以可以修改各个服务的注册中心IP地址,改为docker容器的内部ip。首先查看IP地址 也可以直接通过用 远程执行命令也可以(Centos7);

javascript 复制代码
docker exec -it ID/NAMES(容器id) ip addr 

查看微服务的yaml文件配置,修改每个微服务的eureka注册中心的地址,改为docker容器内部的ip

重新打包,构建镜像,启动镜像,查看各个微服务容器日志没有报错,eureka注册中心重新访问,发现其他服务已经注册上了。

相关推荐
UrbanJazzerati16 分钟前
AutoHotkey v2 零基础快速入门 Part 3 像素亮度检测完全指南
后端
浮链序17 分钟前
Shopify 把 10 亿商品开放给任意 agent 了:我用零依赖 Python 撸了个带预算闸门的代购网关
后端·代码规范
Qlly28 分钟前
全栈工程师怎么接需求?从一句「加个功能」聊到能开发、能验收
前端·后端
马可家的菠萝32 分钟前
你的微信“文件传输助手”,是不是已经成了第二个网盘?
前端·后端·架构
花涧鹤44 分钟前
学完循环我才发现,我写的不是死循环,是死机
后端
打工仔折腾 AI1 小时前
LangChain 工具调用实战:从 Tool 定义到 Agent 执行链路拆解
java·前端·人工智能·后端·python·langchain·ai agent 实战
汉堡大王95271 小时前
单次输出拉到100万Token:拆完 Gemini 4 Argon 的续写协议,才看懂谷歌这7个月在憋什么
前端·人工智能·后端
武子康2 小时前
ESP32 唤醒成功,离线命令为什么没有执行?
人工智能·后端·agent
挖掘狂人2 小时前
SQL 注入:一行代码如何撬开整个数据库
后端·sql·数据分析