spring的云无法从docker上的zuul获取服务

我有一个简单的spring云项目,它包含4个服务:

  • configuration:8888
  • registry(尤里卡):8761
  • 网关(zuul):8080
  • 服务-1:9527

在这里input图像说明

如果在localhost中部署项目没有问题,

我可以通过没有docker的zuul成功获取service-1的api:

HTTP://本地主机:8080 /服务-1 /testing

但是当我与docker部署,它抛出错误: Caused by: java.lang.RuntimeException: org.apache.http.conn.HttpHostConnectException: Connect to registry:9527 [registry/172.21.0.4] failed: Connection refused (Connection refused)

我只能用service-1的API来获取

HTTP://本地主机:9527 /testing

PS:两个服务(网关,服务1)已成功注册到尤里卡

这里是我的docker – 撰写yml:

 version: '3' services: config: build: ./config ports: - "8888:8888" registry: build: ./registry ports: - "8761:8761" depends_on: - config environment: - SPRING_PROFILES_ACTIVE=prd gateway: build: ./gateway depends_on: - config links: - registry - service-1 ports: - "8080:8080" environment: - SPRING_PROFILES_ACTIVE=prd service-1: build: ./service-1 ports: - "9527:9527" depends_on: - config links: - registry environment: - SPRING_PROFILES_ACTIVE=prd 

谁能帮我?

我已经解决了这个问题,我忘了在网关主类添加@EnableDiscoveryClient ,并覆盖尤里卡实例主机名