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

Docker容器中Python Web服务无法访问问题求助

问题排查与解决方案

1. 修正Django服务器绑定地址

你的CMD指令中,runserver未指定监听地址,Django开发服务器默认仅绑定容器内部的127.0.0.1,导致宿主机(Windows)无法访问。需要修改Dockerfile的启动命令:

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

2. 恢复EXPOSE指令(可选但建议)

虽然EXPOSE不直接影响端口转发,但它能明确容器对外暴露的端口,让配置更清晰:

EXPOSE 8000

3. 重新构建并启动服务

执行以下命令更新容器镜像并重启服务:

docker compose down
docker compose build
docker compose up

4. 验证容器内端口监听状态

如果仍无法访问,进入容器确认服务是否真的在监听8000端口:

# 获取mo_backend容器ID
docker ps
# 替换<container_id>为实际容器ID,检查端口监听
docker exec <container_id> netstat -tulpn

正常输出中应能看到0.0.0.0:8000被Python进程占用。

5. WSL端口转发排查(若上述步骤无效)

WSL2的端口转发偶尔会出现异常,可尝试:

  • 重启WSL:执行wsl --shutdown,重新打开WSL终端后启动服务
  • 在WSL内部访问localhost:8000,如果能访问,说明是Windows与WSL的端口转发问题,可重启Windows的Host Network Service服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:15:03