【发布时间】:2020-05-30 02:25:02
【问题描述】:
我在 docker 容器中有一个 eureka 服务器,在另一个 docker 容器中有另一个应用程序。我使用docker network create eureka-s1 建立了一个网络。所以,我正在使用以下命令运行尤里卡服务器:docker run --network eureka-s1 --name eureka-server -p 8761:8761 f595acb214d5
eureka服务器的配置文件如下:
spring:
application:
name: discovery-service
eureka:
instance:
prefer-ip-address:true
hostname:localhost
client:
eureka-server-connect-timeout-seconds: 5
enabled: true
fetch-registry: false
register-with-eureka: false
server:
port: 8761
所以,它运行良好。现在,当我使用命令:docker run --network eureka-s1 --name first-service -p 8080:8080 c16b2442b890 运行我的应用程序时,应用程序没有注册到尤里卡。客户端的配置文件如下:
spring:
application:
name: first-service
server:
port: 8080
eureka:
client:
fetch-registry: true
serviceUrl:
defaultZone: http://eureka-server:8761/eureka
有人可以指出这里的问题吗?谢谢。
编辑: 尤里卡服务器 Dockerfile:
FROM openjdk:8
ADD target/cloud-eureka-discovery-service-1.0.0-SNAPSHOT.jar cloud-eureka-discovery-service-1.0.0-SNAPSHOT.jar
EXPOSE 8761
ENTRYPOINT ["java", "-jar", "cloud-eureka-discovery-service-1.0.0-SNAPSHOT.jar"]
Eureka 客户端 Dockerfile:
FROM openjdk:8
ADD target/first-service-0.0.1-SNAPSHOT.jar first-service-0.0.1-SNAPSHOT.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "first-service-0.0.1-SNAPSHOT.jar"]
【问题讨论】:
-
从应用的容器中你能ping通eureka服务器吗?
-
是的,这里是统计数据: --- eureka-server ping 统计数据 --- 传输 39 个数据包,接收 39 个数据包,0% 数据包丢失,时间 962ms rtt min/avg/max/mdev = 0.048 /0.113/0.207/0.049 毫秒
-
那我猜问题出在你的尤里卡服务器配置上。我会尝试使用
hostname:localhost。您可以将其更改为 eureka-server 而不是 localhost,或者如果它不是强制性的,则将其删除。在 spring 的 eureka 文档中搜索可能的替代方案。
标签: spring docker spring-cloud netflix-eureka