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

Windows11+WSL2 Ubuntu20.04环境下Docker部署Flask应用页面加载超时问题求助

解决Docker部署Flask应用无法访问的问题

你的问题核心出在Dockerfile里的COPY命令语法错误,这导致应用代码没有被正确复制到容器中,进而引发网络访问超时。下面是具体的排查和修复步骤:

1. 修正Dockerfile的COPY命令

你当前的COPY命令写法存在语法问题:

COPY . ./app /app/

这种写法会把本地根目录(.)和本地./app文件夹的内容混杂复制到容器的/app目录下,造成代码路径混乱,甚至可能运行的不是你修改过的、监听0.0.0.0的main.py文件。

把这行改成正确的写法,将本地项目根目录的所有内容完整复制到容器的/app工作目录:

COPY . /app/

2. 重新构建并运行容器

修复后执行以下命令重新构建镜像并启动容器:

docker build -t s-o-question:latest .
docker run -p 5000:5000 s-o-question

此时观察控制台输出,应该显示:

Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

如果还是显示127.0.0.1,说明容器内运行的main.py没有正确加载你设置的监听地址,可以进入容器验证代码:

# 获取容器ID
docker ps
# 进入容器终端
docker exec -it <你的容器ID> bash
# 查看main.py的内容
cat app/main.py

确认代码里的app.run方法确实包含host='0.0.0.0'参数。

3. 测试访问有效性

  • 在WSL2内部,执行curl http://localhost:5000,如果返回Hello big world,说明容器内应用正常,端口映射生效。
  • 在Windows系统中,直接打开浏览器访问http://localhost:5000,应该能正常加载页面。

额外检查项

  • 确保Docker Desktop的设置中已启用"Use the WSL 2 based engine",并且Ubuntu-20.04被设为Docker的默认发行版。
  • 确认本地防火墙没有阻止5000端口的流量。

内容的提问来源于stack exchange,提问作者konrad-h

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 05:22:47