首页 > 解决方案 > 关于 Traefik 在使用 swarm 部署时自动检测端口的困惑(因此与文档的多个部分相矛盾)

问题描述

Traefik 的文档指出

Traefik 从 Docker API 检索容器的私有 IP 和端口。

如果一个容器暴露了一个端口,那么 Traefik 使用这个端口进行私有通信。

但是,在Traefik 文档的其他部分中,指定了以下内容:

Docker Swarm 不向 Traefik 提供任何端口检测信息。

因此,您必须使用标签 traefik.http.services.<service_name>.loadbalancer.server.port 指定用于通信的端口

这也与文档的另一部分一致:

traefik.http.services.<service_name>.loadbalancer.server.port

注册一个端口。当容器暴露多个端口时很有用。

对 Docker Swarm 强制执行

使用 docker swarm ( docker stack deploy) 部署 Traefik 时,端口会自动拾取,这令人困惑。

文档是否已过时,或者 Traefik 是否可以在未指定端口的情况下工作是错误或其他原因?

标签: dockertraefik

解决方案


推荐阅读