Перенаправить запросы на основе хоста к порту (внутри контейнера Docker)

1095
Disco

Я пытаюсь реализовать этот забавный проект, состоящий из нескольких экземпляров postfix / dovecot внутри контейнера Docker.

Я ищу «что-то», которое перенаправило бы любой входящий запрос через порт 25 (любой может быть позже 143, 993) в нужный контейнер на другом порту.

Вот идея:

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

Таким образом, идея состоит в том, чтобы «перенаправить» запросы, поступающие на порт 25 и основанные на «имени хоста», для перенаправления на правильный порт (внутри); в идеале было бы здорово управлять этим «отображением» с помощью базы данных / текстового файла

Есть идеи ? Направления?

0

1 ответ на вопрос

1
eoinbrazil

You should use docker's ambassador containers and avoid hard linking between containers to ensure service portability. This will easily allow you to change your settings if you need to talk to a different or additional postfix container. You simply restart the postfix-ambassador container that your mail box is connected to. In the case of mail processing where you might want to add various other processing stages, e.g. SpamAssassin, ClamAV, etc., this approach will help in creating a chained process.

This pattern supports the moving of your postfix server to a different docker host.

Here is a blog post describing the pattern - http://fosiki.com/blog/2013/12/05/docker-container-network-portability/