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

Docker部署Django项目无法访问首页问题求助

Django容器无法通过浏览器访问的排查与解决

核心问题定位

容器内Django默认绑定127.0.0.1,仅容器内部可访问,宿主机无法通过该地址连接。以下是分步解决步骤:

1. 修改Django服务绑定地址

运行服务器时必须指定绑定0.0.0.0,让容器监听所有网卡:

docker-compose run app sh -c "python manage.py runserver 0.0.0.0:8000"

或直接在docker-compose.yml的app服务中配置启动命令:

services:
  app:
    # 其他配置项
    command: python manage.py runserver 0.0.0.0:8000

2. 确认端口映射配置

检查docker-compose.yml中是否配置了端口映射,将容器8000端口映射到宿主机:

services:
  app:
    # 其他配置项
    ports:
      - "8000:8000" # 格式:宿主机端口:容器端口

3. 修正Django的ALLOWED_HOSTS

在settings.py中添加允许访问的主机地址,开发环境可直接用通配符:

ALLOWED_HOSTS = ['0.0.0.0', '127.0.0.1', 'localhost']
# 开发环境简化配置:ALLOWED_HOSTS = ['*']

4. 验证容器运行状态

执行docker ps查看容器状态:

  • 确认app服务状态为Up
  • 确认端口映射显示为0.0.0.0:8000->8000/tcp或类似格式

5. 排查网络连通性

  • 进入容器内部测试服务可用性:
docker exec -it <你的容器ID> sh
curl http://127.0.0.1:8000

若返回页面内容,说明容器内服务正常,问题出在端口映射或宿主机网络;若失败,检查Django服务启动日志。

  • 宿主机端测试:执行curl http://127.0.0.1:8000,若失败检查防火墙是否拦截8000端口。

内容的提问来源于stack exchange,提问作者Matheus Tenório

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:56:03