2017-02-07 7 views
1

я могу отправить почту от хоста, используя почту:Докер. Отправить письмо от хозяина

mail -s "Hooray" [email protected] < /dev/null 

Но я хочу, чтобы отправить почту из Докер контейнера с использованием хост-сервера. Docker говорит «порт уже используется» при попытке отобразить его на 25 порта в команды запуска:

run -ti -p 25:25 container 

Как я могу достичь цели? Хост - Centos, докер использует Ubuntu.

+1

Hi. Вы нашли какое-то решение? – spiil

+0

@spiil привет, нет, я сдался :) Мне удалось отправить электронные письма прямо с сервера gmail smtp – Snobby

+0

oh ok. спасибо за ответ :) – spiil

ответ

0

Использование переадресации портов с контейнером докера вы пересылаете порт контейнера на хост. Таким образом, порт 25 уже используется на хосте почтовым сервером. Здесь вам необходимо переслать порт от хоста к контейнеру:

Forward host port to docker container

Самый простой способ заключается в использовании --net=host вариант:

docker run --rm -it --net=host container mail -s "Hooray" [email protected] < /dev/null 
+0

Может быть, есть способ сделать это без использования --net = host? Я также использую несколько других контейнеров в сети. – Snobby

0

Вы не можете слушать на тот же порт с несколькими приложениями. Так что, если есть уже приложение на хосте прослушивает порт 25, вы можете остановить это приложение, или настроить контейнер для прослушивания на другой порт хоста, например:

run -ti -p 2525:25 container 

Это приводит к тому, порт, который будет отображаться в порт 2525 хоста в порт контейнера 25. Если вам не нужно получать почту из контейнера, вы можете полностью удалить это сопоставление портов, которое все равно позволит отправлять исходящие сообщения.

Если вы не знаете, что использует порт 25 на хосте, вы можете посмотреть это вверх с NETSTAT команды:

sudo netstat -lntp 

Обратите внимание, что Sudo требуется, если вы хотите, чтобы увидеть процесс, слушает порт.

+0

Я хочу отправить письма (не хочу получать их вообще) из контейнера, так что мне вообще не нужно отображать порты? – Snobby

+0

Если вам не нужно получать почту из контейнера, вы можете полностью удалить это сопоставление портов, которое все равно позволит отправлять исходящие сообщения. – BMitch

 Смежные вопросы

  • Нет связанных вопросов^_^