Назад | Перейти на главную страницу

(Debian) Запуск двух почтовых и веб-серверов одновременно в разных контейнерах докеров

Я установил веб-сервер Debian с двумя контейнерами докеров:
- контейнер для ларадока (laradock.io - Документация доступна на laradock.io).
- почтовый контейнер (mailcow.email - Имеется документация Вот)

Сначала я настраиваю контейнер laradock, а на данный момент при запуске служб caddy, mysql, php-fpm and workspace, докер резервирует следующие порты в моей системе (lsof -i -n -P):

COMMAND     PID        USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 11641        root    4u  IPv6 354251      0t0  TCP *:3306 (LISTEN)
docker-pr 11848        root    4u  IPv6 355207      0t0  TCP *:2222 (LISTEN)
docker-pr 12229        root    4u  IPv6 356964      0t0  TCP *:443 (LISTEN)
docker-pr 12241        root    4u  IPv6 357019      0t0  TCP *:80 (LISTEN)
docker-pr 13809        root    4u  IPv4 367743      0t0  TCP 127.0.0.1:19991 (LISTEN)
docker-pr 13837        root    4u  IPv4 367839      0t0  TCP 127.0.0.1:13306 (LISTEN)
docker-pr 13890        root    4u  IPv6 368035      0t0  TCP *:4190 (LISTEN)
docker-pr 13913        root    4u  IPv6 368092      0t0  TCP *:995 (LISTEN)
docker-pr 13949        root    4u  IPv6 368179      0t0  TCP *:993 (LISTEN)
docker-pr 13975        root    4u  IPv6 368244      0t0  TCP *:143 (LISTEN)
docker-pr 13989        root    4u  IPv6 368290      0t0  TCP *:110 (LISTEN)

При попытке запустить mailcat-dockerized с помощью debian-compose up -d в каталоге, в который я установил все файлы mailcut, я столкнулся со следующими проблемами:

[...] Mailcat/NGINX: Bind for 0.0.0.0:443 failed: port is already allocated [...]
[...] Mailcat/POSTFIX: Error starting userland proxy: listen tcp 0.0.0.0:25: bind: address already in use

Просматривая другие мои записи в lsof -i -n -P, есть причина сбоя:

COMMAND     PID        USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
exim4      3050 Debian-exim    3u  IPv4  17648      0t0  TCP 127.0.0.1:25 (LISTEN)
exim4      3050 Debian-exim    4u  IPv6  17653      0t0  TCP [::1]:25 (LISTEN)
docker-pr 12229        root    4u  IPv6 356964      0t0  TCP *:443 (LISTEN)

Предустановленная почтовая программа Debian exim зарезервированный порт 25 для прослушивания почты, а мой контейнер laradock с caddy (nginx-подобный сервер с более простым ssl) (конечно) использует порт 443.
В файле Mailcat-config я могу изменить порт для его сервера nginx на другой порт, а также порт smtp.
Насколько я понимаю, мне все еще нужно exim4, поэтому я не могу удалить его из своей системы. Мне это нужно, чтобы я мог отправлять почту каждый раз, когда кто-то успешно выполняет вход по ssh в мою систему. Я могу изменить его порт или порт, который mailcat использует для SMTP, но я не уверен, как это повлияет на отправку / получение почты, особенно когда два почтовых получателя установлены одновременно (exim и mailcow). Я не могу отправить почту для входа в систему по ssh через mailcow, так как она находится в докеризированном контейнере.
Я установил имя хоста / полное доменное имя для mailcow на mail.mydomain.com, что, как я думал, избавит меня от необходимости менять привязки портов для caddy / nginx, поскольку мой laradock-контейнер с caddy слушает только mydomain. com и www.mydomain.com, а не mail.mydomain.com.
Если мне все равно придется изменить порты одной из моих служб, на какой порт я должен его изменить (и если я должен изменить свою конфигурацию caddy или nginx - я бы взял nginx, поскольку caddy обслуживает мой веб-контент и, следовательно, что более важно ). Как я могу указать caddy перенаправить все запросы на mail.mydomain.com на nginx в другом контейнере?

Я был бы очень рад любым ответам на данный момент.