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

Flask应用在Docker容器中无法访问的问题求助

Flask应用Docker部署后无法访问localhost的解决方案

核心问题是你的docker-compose.yml没配置端口映射——容器内的Flask服务默认监听5000端口,但这个端口没和主机端口绑定,主机自然访问不到容器里的服务。

第一步:修改docker-compose.yml,添加端口映射

把你的docker-compose.yml改成下面这样,新增ports字段:

version: '3.9'
services:
  flask:
    build: .
    image: myapp:latest
    ports:
      - "5000:5000"  # 主机端口:容器端口

这个配置会把主机的5000端口和容器内的5000端口绑定,这样你访问localhost:5000就能直接打到容器里的Flask服务。

第二步:确认app.py的监听配置

你已经改了host='0.0.0.0',这个是对的,确保服务监听容器内所有网卡,而不是仅localhost(容器内部的localhost和主机的localhost不是同一个)。最终app.py的启动代码应该是:

if __name__ == "__main__":
    app.run(host='0.0.0.0', debug=True)

第三步:检查requirements.txt

确保你的requirements.txt里包含Flask,否则容器内pip安装依赖会失败:

Flask>=2.0.0

验证步骤

  1. 重新构建启动:docker compose up --build
  2. 访问localhost:5000,应该能看到Hello, World!
  3. 如果还是有问题,先验证容器内部是否能访问:
    • 打开新终端,执行docker ps找到容器ID
    • 执行docker exec -it <容器ID> curl localhost:5000,如果能返回内容,说明服务在容器内正常,问题还是出在端口映射或主机网络配置;如果返回失败,检查服务是否真的启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:52:15