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

WSL2下Docker部署Flask应用访问localhost:5000报ERR_EMPTY_RESPONSE

问题解决方法

核心原因

你当前配置的核心问题是gunicorn的绑定地址配置错误:Docker容器拥有独立的网络命名空间,你在CMD中将gunicorn绑定到了localhost:5000,这个地址仅允许容器内部的环回访问,外部的WSL2宿主机、Windows系统都无法连通容器内的服务。
你直接在WSL2内启动gunicorn可正常访问,是因为此时服务绑定的是WSL2的本地环回地址,Windows和WSL2默认做了localhost的打通,所以可以正常访问。

修复步骤

1. 修改Dockerfile启动参数

将gunicorn的绑定地址改为0.0.0.0:5000,监听容器内所有网卡的请求,修改后的CMD指令如下:

CMD [ "gunicorn", "-w", "4", "-b","0.0.0.0:5000","--reload","app:create_app('development')" ]

2. 重新构建镜像并启动容器

注意你原有的docker build命令缺失了末尾的上下文路径.,补全后执行以下命令:

# 重新构建镜像
docker build -t "backend" .
# 启动容器
docker run -p 5000:5000 backend

3. 异常排查(修改后仍无法访问时执行)

如果修改绑定地址后还是返回ERR_EMPTY_RESPONSE,按以下步骤排查:

  • 先在WSL2终端执行curl localhost:5000,如果能正常拿到返回,说明是Windows侧的问题:检查Windows防火墙是否开放了5000端口的入站规则,也可以直接用WSL2的内网IP+5000端口访问(WSL2内执行ip addr show eth0即可查到对应IP)
  • 如果你使用Docker Desktop运行容器,确认设置中已经开启了对应WSL2发行版的Docker集成开关

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:36:02