Zuul没有将调用路由器发送到docker容器上的spring boot服务

时间:2018-04-11 10:06:30

标签: docker spring-boot netflix-zuul netflix

我是码头工人的新手。我试图通过Zuul url使用docker容器访问spring boot服务。 我将数据库,spring引导服务,eureka服务器和Zuul网关集装箱化。没有dockerization,zuul能够使用主机URL将请求代理到所需的服务。

P.S。 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

1 个答案:

答案 0 :(得分:0)

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

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>

为所有容器执行此操作

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