我是码头工人的新手。我试图通过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
答案 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>
为所有容器执行此操作
就是这样,让我知道它是否有效,