我有一个装在Docker容器中的NodeJS应用程序,我通过该容器向smtp.gmail.com
发送电子邮件(使用nodemailer
npm库)。相同的容器(我的意思是从相同的注册表提取相同的图像)在Macbook上工作,但在Ubuntu VPS上引发超时错误。我尝试使用smtp.gmail.com
从Ubuntu容器ping docker exec...
,并且ping正常。我想知道是什么问题。这是详细信息-
我的Macbook:
Ubuntu VPS:
错误:
在Ubuntu计算机上,我使用命令docker run -p 7656:7656 fb
启动容器。我得到的错误是-
{ Error: Connection timeout
at SMTPConnection._formatError (/docker-training/node_modules/nodemailer/lib/smtp-connection/index.js:606:19)
at SMTPConnection._onError (/docker-training/node_modules/nodemailer/lib/smtp-connection/index.js:579:20)
at Timeout._connectionTimeout.setTimeout (/docker-training/node_modules/nodemailer/lib/smtp-connection/index.js:261:18)
at ontimeout (timers.js:478:11)
at tryOnTimeout (timers.js:302:5)
at Timer.listOnTimeout (timers.js:262:5) code: 'ETIMEDOUT', command: 'CONN' }
我的Docker文件-
FROM node:9.2.0
RUN mkdir /docker-training
WORKDIR /docker-training
COPY . ${WORKDIR}
RUN ["npm", "install"]
EXPOSE 7656
ENTRYPOINT ["npm", "start"]
感谢您的帮助。
答案 0 :(得分:0)
网络设置似乎有问题。
请尝试使用--network host
运行容器,如果可以运行,则需要更改docker网络设置,以允许从容器到docker主机的连接