You need to enable JavaScript to run this app. Docker部署Flask应用:端口映射正常却无法通过浏览器访问
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Flask应用:端口映射正常却无法通过浏览器访问

核心根因

服务不通的核心问题是容器内的Flask服务绑定了127.0.0.1作为监听地址。
这个绑定规则意味着Flask只会接收来自容器自身回环接口的请求,哪怕Docker已经完成了正确的端口映射,宿主机转发过来的外部流量进入容器网络空间后,会因为不匹配监听规则被直接拦截。
你提供的启动日志已经明确指向这个问题:

  • Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    另外从docker ps的输出看,你配置的端口映射0.0.0.0:49153->5000/tcp是完全正常的,Docker层面的转发链路没有问题,不需要调整容器启动的映射参数。
修复操作步骤
  • 调整Flask服务的监听配置,把绑定地址从127.0.0.1改成0.0.0.0:
    • 如果是在代码里通过app.run()启动服务,把对应调用的host参数修改为0.0.0.0,参考写法:app.run(host='0.0.0.0', port=5000)
    • 如果是通过Flask官方命令行启动服务,先设置环境变量指定监听地址,再执行启动命令:执行export FLASK_RUN_HOST=0.0.0.0,之后运行flask run
  • 配置修改完成后,重新构建镜像、启动容器,先核对启动日志,配置生效的状态是日志显示:
  • Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
  • 依旧使用原来的docker run -P命令启动容器即可,不需要额外调整端口参数,启动完成后访问localhost:49153就能正常加载服务。
注意事项

不要在这个问题上浪费时间调整宿主机防火墙、修改Docker端口映射规则,这些操作都无法解决应用本身监听地址绑定错误的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 19:36:04