我创建了一个简单的Java应用程序来发送电子邮件。从IDE运行它时,它可以正常工作,但是在Docker容器中运行它时,它无法到达远程SMTP服务器。我正在使用
docker run -d -p 25:25 [image]:[tag]
启动容器时露出端口25。有谁知道为什么邮件客户端无法连接?
答案 0 :(得分:0)
我认为您在混淆端口映射的要点。这是为了允许主机将给定网络接口上的指定端口绑定到容器中的端口。在您的情况下,您尝试连接到另一台远程主机上的端口25。
如果该应用程序在IDE中运行时可以正常工作,那么我会认为是解析SMTP服务器的问题或SMTP服务器正在侦听的地址的问题。
您是在本地运行SMTP服务器,还是连接到可通过公共DNS解析的SMTP服务器?如果使用docker exec
输入正在运行的容器,您可以通过telnet到SMTP服务器吗?