Я установил веб-сервер 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 в другом контейнере?
Я был бы очень рад любым ответам на данный момент.