Docker容器中Django服务无法通过localhost访问问题求助
解决Docker部署Django无法访问的问题
核心问题排查与修复步骤
1. 修正访问协议与地址
Django开发服务器默认仅支持HTTP,不提供HTTPS服务,你访问https://0.0.0.0:8000会直接失败。正确的访问地址是:http://localhost:8000 或 http://127.0.0.1:8000
2. 确保容器端口映射正确
构建镜像后,启动容器时必须添加端口映射参数,将容器内的8000端口绑定到主机端口:
docker run -p 8000:8000 django
-p 8000:8000表示将主机的8000端口转发到容器内的8000端口- 若主机8000端口被占用,可以换成其他端口,比如
-p 8080:8000,此时访问http://localhost:8080
3. 配置Django的ALLOWED_HOSTS
打开Django项目的settings.py,修改ALLOWED_HOSTS配置,允许容器和主机的访问地址:
ALLOWED_HOSTS = ['0.0.0.0', 'localhost', '127.0.0.1']
修改后需要重新构建镜像:
docker build -t django .
4. 验证容器运行状态
- 查看正在运行的容器:
docker ps
- 查看容器日志,确认Django服务是否正常启动:
docker logs <你的容器ID或名称>
如果日志中出现Starting development server at http://0.0.0.0:8000/,说明服务正常运行。
内容的提问来源于stack exchange,提问作者Hadi Jafari
相关产品推荐
相关产品推荐

