在使用zuul的泊坞窗中的不同容器路由不工作

我有2个微服务(春季启动应用程序)运行在不同的docker集装箱和configurationzuul api网关。 路由到其他容器不起作用。 容器1在8030端口运行,容器2在端口8030运行。

下面是application.yml中的zuulconfiguration –

server: port: 8030 

TODO:弄清楚为什么我需要这里和bootstrap.yml

 spring: application: name: zuul server endpoints: restart: enabled: true shutdown: enabled: true health: sensitive: false zuul: routes: zuultest: url: http://localhost:8080 stripPrefix: false ribbon: eureka: enabled: false 

当通过本地主机访问时:8030 / zuultest / test获取exception为 –

 2016-09-19 09:10:14.597 INFO 1 --- [nio-8030-exec-3] hello.SimpleFilter : GET request to http://localhost:8030/zuultest/test 2016-09-19 09:10:14.600 WARN 1 --- [nio-8030-exec-3] oscnzfilters.post.SendErrorFilter : Error during filtering 

我可以知道为什么我得到这个?

你可以在docker-compose.yml中使用links选项来链接两个容器。

 demo1: image: <demo1 image name> links: - demo2 demo2: image: <demo2 image name> 

然后在zuul:routs:urlconfiguration中,可以使用conatiner名称demo2而不是IP。

你是怎么开始这两个容器的? 如果将它们暴露给docker主机,两者都不能具有相同的端口。

 docker run --name service A --net=host -p 8030:8030 ... docker run --name service B --net=host -p 8030:8031 ... 

如果没有这个,如果你正在调用localhost:8030,你正在调用主机(而不是容器),而你没有得到响应。

当你用不同的端口启动端口时,你需要把端口映射到主机,并用localhost把它们调用到正确的端口