2017-02-07 230 views
1

发送邮件,我可以从主机发送邮件,使用邮件:码头工人。从主机

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

但我想使用主机服务器从搬运工集装箱发送邮件。码头工人说,“端口已在使用”当我尝试它在运行命令映射到25端口:

run -ti -p 25:25 container 

我怎样才能达到目标? 主机是Centos,码头使用Ubuntu。

+1

嗨。你找到了一些解决方案吗? – spiil

+0

@spiil你好,不,我放弃了:)我设法直接从Gmail邮件服务器发送电子邮件 – Snobby

+0

哦。感谢您的回复:) – 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

相关问题