You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法连接EC2上部署的Docker化Flask应用,求排查方案

问题:Docker化Flask应用部署到EC2后无法通过公网访问

我创建了一个简单的Flask应用,使用Docker容器化后,通过gzip和sftp将镜像推送到EC2实例,已通过docker ps确认容器正在运行:
Docker ps命令输出

Flask应用配置为通过8080端口对外提供服务:

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))

对应的Dockerfile中也已暴露该端口:

FROM python:3.10-slim
ENV PYTHONUNBUFFERED True
...
EXPOSE 8080
CMD exec gunicorn --bind :8080 --workers 1 --threads 8 --timeout 0 main:app

确认容器在EC2上正常运行后,我尝试通过浏览器访问实例的公网IPv4 DNS地址加端口:

ec2-digits.region.compute.amazonaws.com:8080

但浏览器返回错误:ERR_CONNECTION_REFUSED

我随即添加了一条入站安全规则,允许任意IPv4流量访问8080端口:
安全配置

即使重启EC2实例后,再次访问仍出现相同的连接拒绝错误。

我已做过以下验证:

  • 通过pip3 list确认Flask已安装(版本v2.2.2)
  • 查看docker container logs my_app未发现任何错误,无论访问8080端口前后,日志内容如下:
[2022-10-25 22:54:37 +0000] [1] [INFO] Starting gunicorn 20.1.0
[2022-10-25 22:54:37 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
[2022-10-25 22:54:37 +0000] [1] [INFO] Using worker: gthread
[2022-10-25 22:54:37 +0000] [7] [INFO] Booting worker with pid: 7

请问我忽略了什么?


内容的提问来源于stack exchange,提问作者John Harrington

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:45:34