假设有两个MariaDB容器在Docker群的同一主机上运行。每个容器具有其内部端口3306,该内部端口3306动态暴露于例如30004和30056。
我希望一个外部容器(未在堆栈中定义)通过主机名和固定端口(例如)访问一个堆栈的数据库。 mariadb_s1:3306
(重定向到端口30004上堆栈1的MariaDB),如下图所示。
我们还有一个运行在Docker主机上的Traefik实例。 Traefik有能力创建这些路线吗?
答案 0 :(得分:2)
我不认为traefik目前不支持TCP代理,但似乎已经计划https://github.com/containous/traefik/issues/10
但是即使有TCP代理支持,也可能很难基于主机名进行路由,因为我不认为MySQL协议包含主机名(可能是错误的)。如果是这样,一种解决方案可能是使用TLS并基于SNI进行路由。