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

使用Docker Compose部署Flask无法连接localhost的问题排查

问题解决:Flask应用在Docker Compose中无法通过localhost访问

核心问题

你在docker-compose配置里设置了FLASK_RUN_HOST=127.0.0.1,这会导致Flask仅监听容器内部的回环地址,主机无法通过端口映射访问到容器内的服务,从而出现连接重置错误。

解决方案

方案1:修改docker-compose.yml的环境变量

将FLASK_RUN_HOST的值改为0.0.0.0,让Flask监听容器的所有网络接口:

web:
    image: application
    depends_on:
      - db
      - cache
    ports:
      - "5000:5000"
    environment:
      - FLASK_APP=app.py
      - FLASK_RUN_HOST=0.0.0.0  # 修改此处
    volumes:
      - app_code:/code

方案2:修改Flask代码中的启动命令

在app.run()中明确指定host参数,覆盖环境变量的设置:

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0')  # 添加host参数

额外注意事项

虽然当前日志无报错,但depends_on仅保证容器启动顺序,不保证db和cache服务完全就绪。如果后续遇到数据库连接失败的问题,可以添加健康检查或使用等待脚本(比如wait-for-it)确保依赖服务就绪后再启动web容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:40:42