我可以使用mail:
从主机发送邮件mail -s "Hooray" smb@example.com < /dev/null
但我想使用主机服务器从docker容器发送邮件。 Docker说&#34;端口已经在使用&#34;当我尝试将它映射到运行命令中的25端口时:
run -ti -p 25:25 container
我如何实现目标? 主机是Centos,docker使用Ubuntu。
答案 0 :(得分:0)
将端口转发与docker容器一起使用,可以将容器的端口转发给主机。因此,您已通过邮件服务器在主机上使用端口25。在这里,您需要将端口从主机转发到容器:
Forward host port to docker container
最简单的方法是使用--net=host
选项:
docker run --rm -it --net=host container mail -s "Hooray" smb@example.com < /dev/null
答案 1 :(得分:0)
您无法使用多个应用程序侦听同一端口。因此,如果主机上的应用程序已经在端口25上侦听,您可以停止该应用程序,或者将容器配置为侦听不同的主机端口,例如:
run -ti -p 2525:25 container
这会导致端口从主机端口2525映射到容器端口25.如果您不需要从容器接收邮件,则可以完全删除此端口映射,这仍然允许您发送出站消息。
如果您不知道主机上使用端口25的是什么,可以使用netstat命令查看:
sudo netstat -lntp
请注意,如果要查看正在侦听端口的进程,则需要sudo。