ECS Fargate公网IP连接被拒绝



我有一个通过Fargate托管在ECS上的docker容器。Docker容器本身是在ECR中。在ECS中,我有一个任务定义,它使用ECR中的映像,并且在端口80 (docker映像运行的端口)上也有端口映射。我还在ECS Fargate集群中定义了一个服务,用于使用此映像的任务定义。在创建服务时,将创建一个新的安全组,允许所有来自端口80(HTTP)的流量。因此,本质上,任何类型的HTTP流量都应该能够使用通过服务生成的公共IP访问该图像。由于某些原因,当访问公共IP时,无论是否隐身,我都得到"无法访问此站点"。ERR_CONNECTION_REFUSED

我已经无数次验证了安全组是开放的,允许任何HTTP流量,并确保公共子网有一个互联网网关允许互联网。任何建议都将不胜感激。下面是我用来创建这个图像的Dockerfile。

Dockerfile

FROM nginx:mainline-alpine
RUN rm /etc/nginx/conf.d/*
ADD hello.conf /etc/nginx/conf.d/
ADD index.html /usr/share/nginx/html/
CMD tail -f /dev/null

我尝试在我的机器上本地运行此映像,并得到相同的错误。

您忘记在Dockerfile中暴露端口了。

FROM nginx:mainline-alpine
RUN rm /etc/nginx/conf.d/*
ADD hello.conf /etc/nginx/conf.d/
ADD index.html /usr/share/nginx/html/
EXPOSE 80
CMD tail -f /dev/null

https://docs.docker.com/engine/reference/builder/暴露

最新更新