【问题标题】:Zuul is not routing call to the spring boot service on docker containerZuul 没有将调用路由到 docker 容器上的 Spring Boot 服务
【发布时间】:2018-09-21 04:04:39
【问题描述】:

我是 docker 新手。我正在尝试使用 docker 容器通过 Zuul url 访问 spring boot 服务。 我已经容器化了数据库、spring boot 服务、eureka 服务器和 Zuul 网关。如果没有 dockerization,zuul 能够使用主机 url 将请求代理到所需的服务。

附: spring boot 服务和 zuul 网关都在 docker 中注册到 eureka 服务器。 下面是Zuul网关的配置:-

zuul.routes.vehicle.url=http://hostname:9010

我也试过了,

zuul.routes.vehicle.serviceId=vehicle (i.e. eureka serviceId)
zuul.routes.vehicle.stripPrefix=false

与:-

ribbon.eureka.enabled=true

在我的情况下两者都不起作用。 我可以看到 Zuul 的 PreFilter 和 Postfilter 被日志命中,但是没有发生转发。

我是这样提出 Zuul 服务的:

docker run -it -p 9001:9001 --name zuulservice --link vehicleservice -d zuulservice bash

我正在尝试像这样访问资源:

 http://localhost:9001/vehicle/resource

我错过了什么吗? 我正在使用 Docker 17.12

【问题讨论】:

    标签: docker spring-boot netflix-zuul netflix


    【解决方案1】:

    链接容器是一项遗留功能,请避免使用它, 创建自己的网卡或使用默认网络,这样做

    docker network ls 
    

    给你

    NETWORK ID          NAME                DRIVER              SCOPE
    634e05482aba        bridge              bridge              local
    d2dfea98cab4        host                host                local
    faf2f1516987        none                null                local
    

    假设我们选择主机网络,

    将您的容器直接部署到主机网络中,它们将能够相互通信 命令将是

    docker run -itd --network=host --name myZuulContainer <image name>
    

    对所有容器执行此操作

    就是这样,让我知道它是否有效,

    【讨论】:

    • 感谢@jayant 的回答。会检查这个
    猜你喜欢
    • 2019-09-11
    • 2020-10-25
    • 2019-02-13
    • 2017-12-02
    • 2017-01-26
    • 2020-09-15
    • 2020-11-07
    • 2019-02-03
    • 1970-01-01
    相关资源
    最近更新 更多