0

我是 docker 世界的初学者,我无法使用 docker compose 让两个容器进行通信。我有两个容器:

  • Service Registry:一个使用 Netflix Eureka 实现服务注册功能的简单 Spring Boot 应用程序。
  • API Gateway:一个使用 Netflix Zuul 的简单 Spring Boot 应用程序。此应用程序将通过连接到给定的 URL 定期尝试注册到 Service Registry 应用程序

没有码头一切正常!现在使用 docker-compose,网关无法找到 Eureka 服务器 URL。

docker-compose.yml 文件:

version: '3.5'
services:

gateway:
 build:
  context: ../robots-store-gateway
  dockerfile: Dockerfile
 image: robots-store-gateway
 ports:
  - 8000:8000
 networks:
  - robots-net

serviceregistry:
 build:
  context: ../robots-sotre-serviceregistry
 image: robots-sotre-serviceregistry
 ports:
  - 8761:8761
 networks:
  - robots-net

networks:
 robots-net:
  name: custom_network
  driver: bridge

网关的application.yml文件为:

eureka:
  client:
    service-url:
      default-zone: http://serviceregistry:8761/eureka/

我收到此异常:

com.sun.jersey.api.client.ClientHandlerException:java.net.ConnectException:连接被拒绝(连接被拒绝)

我尝试了不同的方法来配置 Eureka 客户端,但没有办法!它不起作用。提前致谢。

4

2 回答 2

0

我不知道为什么!但最后,这对我有用:

version: '3.5'
services:

 gateway:
   container_name: gateway
   build:
    context: ../robots-store-gateway
    dockerfile: Dockerfile
   image: robots-store-gateway
   ports:
    - 8000:8000
   hostname: gateway
   environment:
     eureka.client.serviceUrl.defaultZone: http://serviceregistry:8761/eureka/

 serviceregistry:
   container_name: serviceregistry
   build:
    context: ../robots-sotre-serviceregistry
   image: robots-sotre-serviceregistry
   ports:
    - 8761:8761
   hostname: serviceregistry
   environment:
    eureka.client.serviceUrl.defaultZone: http://serviceregistry:8761/eureka/
于 2018-03-23T04:54:26.807 回答
-1

您没有设置容器名称。 关联

并且 url 或 ip 应该替换为容器名称。

示例:mongodb://{container_name}:27017

于 2018-03-22T01:49:31.440 回答