将“基于主机”的请求重定向到端口(在 Docker 容器内)

将“基于主机”的请求重定向到端口(在 Docker 容器内)

我正在尝试实现这个有趣的项目,即在 docker 容器内拥有多个“postfix/dovecot”实例。

我正在寻找“某种东西”,将端口 25(可能更晚的 143、993)上的任何传入请求重定向到不同端口上的正确容器。

想法如下:

                        +-------+                    +----------+
(internet)----(port 25) |mainbox| ---- (port 52032)  |container1| (postfix)
                        +-------+  |                 +----------+
                                   \   (port 52033)  +----------+
                                                     |container2| (postfix)
                                                     +----------+

因此,我们的想法是“重定向”到达端口 25 的请求,并根据“主机名”转发到正确的端口(内部);理想情况下,使用数据库/文本文件来管理这种“映射”会很好

有什么想法吗? 有什么指示吗?

答案1

您应该使用 docker 的 ambassador 容器,并避免在容器之间进行硬链接,以确保服务的可移植性。如果您需要与不同的或额外的 postfix 容器通信,这将使您能够轻松更改设置。您只需重新启动邮箱所连接的 postfix-ambassador 容器即可。在邮件处理的情况下,您可能想要添加各种其他处理阶段,例如 SpamAssassin、ClamAV 等,这种方法将有助于创建链式流程。

此模式支持将您的 Postfix 服务器移动到不同的 Docker 主机。

以下是一篇描述该模式的博客文章 -http://fosiki.com/blog/2013/12/05/docker-container-network-portability/

相关内容