java - 运行 Eureka 服务器和 Eureka 客户端时出现连接错误
问题描述
这是 Eureka 服务器的 Dockerfile
FROM openjdk:16-jdk-alpine
COPY target/EurekaDiscoveryService-0.0.1-SNAPSHOT.jar EurekaDiscoveryServer.jar
ENTRYPOINT ["java","-jar","EurekaDiscoveryServer.jar"]
这是 Eureka 客户端的 Dockerfile
FROM openjdk:16-jdk-alpine
COPY target/ApiGateway-0.0.1-SNAPSHOT.jar ApiGateway.jar
ENTRYPOINT ["java","-jar","ApiGateway.jar"]
这是 Eureka 服务器的 application.properties 文件
server.port=8010
spring.application.name=eureka-server
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
eureka.client.serviceUrl.defaultZone = http://localhost:8010/eureka
eureka.instance.prefer-ip-address=true
这是 Eureka 客户端的 application.properties
server.port=8082
spring.application.name=api-gateway
eureka.client.service-url.defaultZone=http://127.0.0.1:8010/eureka
我在用
-docker run -d -p 8010:8010 eurekaserver command to run Eureka server
-docker run -p 8082:8082 apigateway command to run Eureka client
我收到以下错误:
请求执行失败并显示消息:“http://localhost:8010/eureka/apps/”的 GET 请求出现 I/O 错误:连接到 localhost:8010 [localhost/127.0.0.1] 失败:连接被拒绝;嵌套异常是 org.apache.http.conn.HttpHostConnectException: Connect to localhost:8010 [localhost/127.0.0.1] failed: Connection denied
解决方案
我已修复错误
我刚刚检查了容器使用的IP地址docker inspect <CONTAINER_ID>
,我知道我的尤里卡服务器的docker容器使用IP地址172.17.0.2
而不是IP地址localhost(127.0.0.1)
我正在使用
docker run -e "eureka.client.service-url.defaultZone=http://172.17.0.2:8010/eureka" -p 8082:8082 apigateway
启动我的尤里卡客户端
所以我改为 eureka.client.serviceurl.defaultZone=http://127.0.0.1:8010/eureka
并且eureka.client.service-url.defaultZone=http://172.17.0.2:8010/eureka
它起作用了。
谢谢!!
推荐阅读
- angular - Angular - 如何在使用 APP_INITIALIZER 加载应用程序时显示等待指示器
- excel - 当前 VBA 代码根据条件复制,但每次运行时都会复制以前的数据
- c# - VB.net C# 数字生成器
- angular - 尝试使用 viewChild() 从模块中的一个组件获取价值到 app.component.ts
- google-cloud-platform - 将云调度程序 IP 列入白名单以访问受保护的 HTTP 端点
- elasticsearch - 是否可以创建只返回匹配的嵌套对象而不是所有嵌套对象的 ElasticSeach 搜索?
- .htaccess - htaccess 重定向规则参数
- php - 如何解决“SQLSTATE [42S22]:找不到列”?
- python-3.x - 使用多个索引获取部分 DataFrame
- c - 如何添加扫描端口 ip