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

Docker化Django项目网页无法访问,容器正常运行无终端错误

Django Docker容器运行正常但网页无法访问(ERR_ADDRESS_INVALID)排查方案

以下是针对问题的具体排查步骤:

1. 确认访问地址正确性

  • 浏览器必须输入 http://localhost:8000 或 http://127.0.0.1:8000,不要使用容器内部IP(如172开头的地址),因为端口已映射到主机。
  • 若使用WSL2后端的Docker Desktop(Windows),尝试用 http://0.0.0.0:8000 或通过WSL终端执行 ip addr 找到eth0的inet地址,用该IP访问。

2. 验证容器内服务监听状态

  • 执行 docker exec -it <容器名称或ID> bash 进入容器(容器名可通过docker ps查看)。
  • 安装net-tools(若未安装):apt-get update && apt-get install -y net-tools。
  • 检查端口监听:netstat -tulpn | grep 8000,确认输出中存在python进程监听0.0.0.0:8000。
  • 在容器内执行 curl http://localhost:8000,若能返回页面内容,说明服务正常,问题出在主机侧网络/端口映射。

3. 排查主机防火墙与安全软件

  • 临时关闭主机防火墙(如Windows Defender防火墙、Linux ufw),测试是否能访问。
  • 禁用第三方杀毒软件或安全工具,排除端口拦截可能。

4. 确认Docker端口映射生效

  • 执行 docker ps,查看PORTS列是否显示 0.0.0.0:8000->8000/tcp 或 :::8000->8000/tcp。若显示127.0.0.1:8000->8000/tcp,仅本地可访问(本地访问不影响,但跨设备访问会失败)。
  • 修改docker-compose.yml的端口映射为:
    ports:
      - "0.0.0.0:8000:8000"
    
    重新执行 docker compose up --build 后测试。

5. 检查Django的ALLOWED_HOSTS配置

  • 打开项目的settings.py,确认ALLOWED_HOSTS包含主机IP或设置为ALLOWED_HOSTS = ['*'](仅测试用,生产环境需指定具体域名/IP)。
  • 修改后重新构建容器,验证是否解决问题。

6. 重置Docker网络配置

  • 若使用Docker Desktop,进入「设置」→「Network」,点击「Reset Network」,重启Docker后重新启动容器测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:27:04