Traefik 可以创建具有固定端口的路由到 Docker 主机上的容器吗?

Can Traefik create routes with fixed ports to containers on a Docker host?

假设 Docker 集群的同一主机上有两个 MariaDB 容器 运行。每个容器都有其内部端口 3306,该端口动态暴露给例如30004 和 30056。

我想要一个外部容器(未在堆栈中定义)通过主机名和固定端口访问一个堆栈的数据库,例如mariadb_s1:3306(重定向到30004端口stack 1的MariaDB)如下图

我们在 Docker 主机上也有一个 Traefik 实例 运行。 Traefik 是否能够创建这些路由?

我认为 traefik 目前不支持 TCP 代理,但似乎在计划中 https://github.com/containous/traefik/issues/10

但即使有 TCP 代理支持,也可能很难基于主机名进行路由,因为我认为 MySQL 协议不包含主机名(可能是错误的)。如果是这样,一种解决方案可能是使用基于 SNI 的 TLS 和路由。