【问题标题】:Aws EC2 port 80 connection refusedAWS EC2 端口 80 连接被拒绝
【发布时间】:2020-09-29 08:57:44
【问题描述】:

我正在尝试在 aws EC2 上运行节点 js 服务器

我的码头文件:

FROM node:lts-alpine

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 80

CMD ["node", "server.js"]

在我的server.js 内部是一个正在监听端口 80 的快速网络服务器。

我将端口 80 包含在入站规则中:

但当我尝试打开公共 DNS 或关联域时,我仍然得到以下信息:

任何想法我做错了什么?

【问题讨论】:

  • 当你运行你的 docker 时,你有没有将容器的端口映射到主机端口?
  • @Marcin 我以为EXPOSE 80 正在这样做,我错了吗?
  • "EXPOSE 指令实际上并没有发布端口。"来自docs
  • 顺便问一下,ssh 问题有什么好运气吗?
  • @Marcin 您也可以发表您的评论作为答案吗?所以我可以批准它

标签: node.js amazon-web-services docker amazon-ec2


【解决方案1】:

您的容器的端口 80 似乎没有分配给主机的端口。 EXPOSE 指令不会为您执行此操作。来自Docker docs

EXPOSE 指令实际上并不发布端口。它充当构建映像的人和运行容器的人之间的一种文档类型,关于打算发布哪些端口。 要在运行容器时实际发布端口,使用 docker run 上的 -p 标志来发布和映射一个或多个端口,或 -P 标志 发布所有暴露的端口并将它们映射到高阶端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-11
    • 2018-03-05
    相关资源
    最近更新 更多