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

Docker容器无法Curl访问本地Flask服务问题求助

容器内无法访问主机Flask服务的排查方向

以下是几个大概率的问题点和对应的验证/解决方法:

  • Flask服务绑定地址错误
    Flask默认仅绑定127.0.0.1,这种情况下只有主机本地进程能访问,容器通过host.docker.internal发起的请求属于外部访问,会被拒绝。
    解决:启动Flask时强制绑定0.0.0.0,比如执行flask run --host=0.0.0.0,或者在代码里设置app.run(host='0.0.0.0', port=5000)。

  • 主机防火墙拦截了5000端口的TCP请求
    ping通host.docker.internal仅说明ICMP协议能正常通信,但TCP 5000端口的入站请求可能被主机防火墙(Windows Defender防火墙、Linux的ufw/iptables)拦截。
    解决:在主机防火墙中添加规则,允许5000端口的入站TCP连接,尤其是允许来自Docker所属子网的请求。

  • Flask实际监听的端口不是5000
    确认Flask服务确实在5000端口监听:

    • Linux/macOS执行netstat -anp | grep 5000或ss -tulpn | grep 5000,检查是否有0.0.0.0:5000的监听记录
    • Windows执行netstat -ano | findstr :5000,确认对应PID的进程是Flask服务
  • Docker版本过低导致host-gateway不生效
    host-gateway是Docker 20.10.0及以上版本才支持的写法,如果你的Docker版本低于这个,extra_hosts里的配置不会生效。
    解决:要么升级Docker到最新稳定版,要么替换host-gateway为主机的实际局域网IP(比如192.168.x.x),再测试容器内访问该IP的5000端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:43:11