我目前是第一次在docker上设置traefik,遇到了理解路由的问题。如果我的服务仅公开单个端口,则路由选择效果很好。但是,如果服务公开了多个端口,则失败(带有“错误网关”),我不知道如何解决该问题。
作为示例,请考虑此处https://docs.traefik.io/v2.0/getting-started/quick-start/给出的“快速入门”示例,该示例运行良好。现在,我通过将image: containous/whoami
替换为image: mywhoami
来使用其他图像。这里的mywhoami
是根据以下Dockerfile构建的映像:
FROM containous/whoami
EXPOSE 70
EXPOSE 90
EXPOSE 4000
在这种情况下,使用curl -H Host:whoami.docker.localhost http://127.0.0.1
测试服务将得到Bad Gateway
。另外,将标签- "traefik.port=80"
添加到服务定义中也无济于事。任何想法如何手动指定端口?交通选择端口的规则是什么?
我喜欢设置traefik的过程非常简单,但是总体而言,我不了解它为什么起作用以及traefik在后台进行的工作。任何了解更多的指示都将受到高度赞赏。谢谢。