【发布时间】:2020-02-02 13:32:11
【问题描述】:
我正在运行 AWS ECS 服务,该服务正在运行具有多个容器的单个任务。 任务在 awsvpc 网络模式下运行。 (EC2,不是 Fargate)
容器端口映射在 ECS 任务定义中。
我在 EC2 容器实例安全组中添加了入站规则(例如:TCP 8883 -> 从任何地方访问)。也在 VPC 网络安全组中。
当我尝试从远程 PC 使用实例的公共 IP 访问端口时,我得到connection refused。
例如:nc -z <PublicIP> <port>
当我 SSH 进入 EC2 实例并尝试 netstat 时,我可以看到 SSH 端口 22 正在侦听,但不是容器端口(例如:8883)。
另外,当我在实例中执行docker ps 时,端口列是空的。
我无法弄清楚我错过了什么配置。请帮忙。
PS:目标(公共 IP)可从远程 PC 访问。只是不是来自港口。
【问题讨论】:
-
你 ssh 到服务器,看到端口 22 正在监听,端口 8883 怎么样?
-
端口 8883 未在监听。实例内的 docker ps 将 PORTS 列显示为空。但在我的任务定义中,端口是映射的。
-
你能分享
dockerfile的应用程序吗? -
哪个
Host端口映射到您的任务定义中的Container端口? -
FROM nginx:latest COPY ./nginx/nginx.conf /etc/nginx/nginx.conf COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf COPY 。 /nginx/certs/ /etc/nginx/certs/ CMD ["nginx", "-g", "daemon off;"] 我也需要在 dockerfile 中公开端口吗?即使在任务定义ContainerPort中配置了
标签: amazon-web-services docker amazon-ec2 port amazon-ecs