Traefik在Docker Swarm中运行的基本配置

Traefik在Docker Swarm中运行的基本配置,docker,docker-swarm,traefik,swarm,docker-swarm-mode,Docker,Docker Swarm,Traefik,Swarm,Docker Swarm Mode,据我所见,情况如下: docker traefik.yml: 版本:“3” 服务: 特拉菲克: 图片:特拉菲克 命令:--docker#启用docker提供程序 #使用Docker Swarm模式作为数据提供程序 --斯瓦姆莫德码头 端口: - "80:80" 卷数: #让它能够监听Docker事件 -/var/run/docker.sock:/var/run/docker.sock docker whoami.yml: 版本:“3” 网络: traefik_默认值: 外部:正确 服务: wh

据我所见,情况如下:

docker traefik.yml

版本:“3”
服务:
特拉菲克:
图片:特拉菲克
命令:--docker#启用docker提供程序
#使用Docker Swarm模式作为数据提供程序
--斯瓦姆莫德码头
端口:
- "80:80"
卷数:
#让它能够监听Docker事件
-/var/run/docker.sock:/var/run/docker.sock
docker whoami.yml

版本:“3”
网络:
traefik_默认值:
外部:正确
服务:
whoami:
图片:containous/whoami
网络:
#添加到traefik网络
-traefik_默认值
部署:
标签:
#whoami在端口80上
-“traefik.port=80”
#谁在traefik_默认网络上
-“traefik.docker.network=traefik\u默认值”
#何时将请求转发给whoami
-“traefik.frontend.rule=Host:example.com”
让我在此引述:

所需标签:

  • traefik.frontend.rule
  • traefik.port
    -如果没有此选项,调试日志将显示此服务被故意过滤掉
  • traefik.docker.network
    -如果没有它,可能会出现504

traefik.docker.network
覆盖用于连接到容器的默认docker网络。[1]

traefik.port=80
注册此端口。当容器公开多个端口时非常有用

但是为什么它不能将暴露的端口作为默认值
traefik.port
?据我所见,它在没有
traefik.docker.network
的情况下工作(也就是说,如果
traefik\u default
是第一个服务的网络)。我什么时候能拿到504的

但是为什么不能将暴露的端口作为默认值traefik.port呢

如果您的集装箱有3个或4个暴露端口,traefik应该使用哪一个?那么谁对traefik说,这些端口中哪一个是正确的?您也可以使用
traefik.port
。使用已配置服务的默认端口的问题在哪里

你应该公开80443和8080-SO80和443用于http/https网页,8080用于traefik仪表板。如果你不想使用仪表板,你不需要暴露8080

而且我在您的composer文件中没有看到任何配置了@traefik的网络-这应该没有网络吗?您的服务和traefik需要位于同一网络中。否则traefik无法到达您的服务和转发

端点在哪里

但是为什么不能将暴露的端口作为默认值traefik.port呢

如果您的集装箱有3个或4个暴露端口,traefik应该使用哪一个?那么谁对traefik说,这些端口中哪一个是正确的?您也可以使用
traefik.port
。使用已配置服务的默认端口的问题在哪里

你应该公开80443和8080-SO80和443用于http/https网页,8080用于traefik仪表板。如果你不想使用仪表板,你不需要暴露8080

而且我在您的composer文件中没有看到任何配置了@traefik的网络-这应该没有网络吗?您的服务和traefik需要位于同一网络中。否则traefik无法到达您的服务和转发


端点在哪里?

但如果未指定
traefik.docker.network
,它会以某种方式计算出网络。为什么不能使用
traefik.port
?然后,仔细阅读问题。上面写着“基本配置”,意思是没有设置就不能工作。因此,我只需要公开端口80。另外,仔细看看,他们在同一个网络上。只需运行这两个
yaml
文件并亲自查看。但是如果未指定
traefik.docker.network
,它会以某种方式计算出网络。为什么不能使用
traefik.port
?然后,仔细阅读问题。上面写着“基本配置”,意思是没有设置就不能工作。因此,我只需要公开端口80。另外,仔细看看,他们在同一个网络上。只需运行这两个
yaml
文件,然后自己查看。