当前位置: 首页 > 知识库问答 >
问题:

Ubuntu 上的 Docker 容器阻止传出流量

卢枫涟
2023-03-14

我有一个装在Docker容器中的NodeJS应用程序,我可以通过它向<code>smtp.gmail发送电子邮件。com(使用<code>nodeEmailer从Ubuntu容器中使用docker exec…,ping工作正常。我想知道是什么问题。详情如下:-

我的 Macbook:

    < li >操作系统:MacOS High Sierra(版本10.13.6) < li>Docker:版本18.06.1-ce,内部版本e68fc7a

Ubuntu VPS:

  • 操作系统: Ubuntu 16.04.5 LTS
  • Docker:版本 18.06.1-ce,构建 e68fc7a

错误:

在 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"]

感谢您的帮助。

共有1个答案

慎望
2023-03-14

网络设置似乎有问题。请尝试使用--网络主机运行容器,如果可行,您需要更改docker网络设置,以允许从容器到docker主机的连接

 类似资料:
  • 问题内容: 我无法杀死或停止任何泊坞窗容器。我已允许非特权用户运行Docker命令。并且工作正常。但是我无法停止其他任何容器。 我得到了: 与sudo相同的错误。同时,所有容器都可以成功运行,但是要停止它们,只能完全重新引导系统。 Docker撰写示例:#使用postgres / example用户/密码凭证版本:“ 3.1” Docker信息: 问题答案: AppArmor(应用程序装甲)是Li

  • 问题内容: 我想阻止从外部直接访问docker容器。我使用haproxy,并且只希望访问端口80、443。 我在iptables中添加了以下规则。但是我仍然可以通过不同的端口访问Docker容器。 这可能是由于DOCKER链 我需要创建什么规则来阻止直接访问? 问题答案: 您可以使用命令创建一个网络来连接应用程序和代理,而不必使用IP表来执行此操作。另外,请勿在任何端口上公开应用程序。您应该公开的

  • 我在WSL2 Ubuntu 20.04上,试图在“交互式tty”模式下运行一个Docker容器,我根本看不到终端中容器的输出。 WSL2 terminal - Run a container and execute a command 我可以用Ttyd克服它,但我更喜欢用我的终端,这个有什么线索吗? Ubuntu 20.04 is my default distribution

  • 问题内容: Docker提供了一种列出正在运行的容器或所有容器(包括已停止的容器)的方法。 这可以通过以下方式完成: 或通过 我们有办法只列出已停止的容器吗? 问题答案: 只能使用以下命令列出停止的容器: 要么

  • Docker为您提供了一种列出正在运行的容器或所有容器(包括停止的容器)的方法。 这可以通过以下方式实现: 或者 我们是否有办法只列出已停止的容器?

  • 问题内容: 在Ubuntu 14.04(Trusty Tahr)上,我正在寻找一种方法来停止正在运行的容器,而我仅有的信息是Docker run命令中使用的映像名称。 是否有命令查找与该映像名称匹配的所有匹配运行容器并停止它们? 问题答案: 在发行8959之后,一个良好的开端将是: 由于是指 _容器_而不是映像名称,因此您需要使用koekiebox的答案中提到的最新Docker 1.9过滤器祖先