提问者:小点点

Docker。从主机发送邮件


我可以从主机发送邮件,使用邮件:

mail -s "Hooray" smb@example.com < /dev/null

但我想使用主机服务器从docker容器发送邮件。在运行命令中,当我尝试将端口映射到25端口时,Docker说“端口已在使用中”:

run -ti -p 25:25 container

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


共2个答案

匿名用户

将端口转发与 Docker 容器结合使用,可以将容器的端口转发到主机。因此,邮件服务器已经在主机上使用端口25。在这里,您需要将端口从主机转发到容器:

将主机端口转发到docker容器

最简单的方法是使用 --net=host 选项:

docker run --rm -it --net=host container mail -s "Hooray" smb@example.com < /dev/null

匿名用户

您不能在同一端口上侦听多个应用程序。因此,如果主机上已有一个应用程序监听端口25,您可以停止该应用程序,或者将容器配置为监听其他主机端口,例如:

run -ti -p 2525:25 container

这会导致端口从主机端口2525映射到容器端口25。如果您不需要从容器接收邮件,您可以完全删除此端口映射,这仍然允许您发送出站邮件。

如果您不知道主机上端口25的用途,可以使用netstat命令查找:

sudo netstat -lntp

请注意,如果要查看侦听端口的进程,则需要sudo。