Docker部署Django服务后无法访问0.0.0.0:8000开发地址
问题修复方案
你的配置存在3处核心错误,按以下步骤修改即可解决访问问题:
1. 修正端口映射配置
docker-compose端口映射规则为宿主机端口:容器内服务监听端口,你当前配置的"8000:8001"将宿主机8000端口映射到了容器未使用的8001端口,但Django服务实际在容器内监听8000端口,请求根本无法到达服务。
将pairprogramming_be服务下的ports配置修改为:
ports: - "8000:8000"
2. 修正容器内路径配置
你使用的python:3基础镜像是Linux系统,不存在Windows系统的C:/盘符路径,当前Dockerfile和docker-compose中配置的WORKDIR、挂载路径全为Windows本地路径,容器内无法识别,会导致服务运行目录异常。
- 修改Dockerfile中的WORKDIR为Linux容器标准工作路径:
WORKDIR /app
- 修改docker-compose中对应服务的volumes、working_dir配置,你原来的volume配置多写了一个冒号属于语法错误,同步修正:
volumes: - "C:/Users/15512/Desktop/django-project/peerplatform:/app" working_dir: /app
3. 修正访问地址与ALLOWED_HOSTS配置
0.0.0.0是服务端绑定所有网卡的监听地址,不能作为客户端访问地址,浏览器访问请使用http://127.0.0.1:8000或http://localhost:8000- 你之前配置的
127.0.0.0.1是错误的回环地址,正确地址为127.0.0.1,开发环境可以直接将.env中DJANGO_ALLOWED_HOSTS设为*,避免主机头拦截。
其他说明
你执行的容器IP查询命令仅能获取Docker默认bridge网络下的容器IP,docker-compose v3+默认会为服务创建自定义bridge网络,该字段返回空属于正常现象,不代表容器未分配IP。端口映射配置正确后,无需查询容器IP,直接访问宿主机端口即可。
验证步骤
- 执行
docker-compose down -v删除旧的异常容器 - 按上述内容修改所有配置文件
- 执行
docker-compose up --build重新构建并启动服务 - 浏览器访问
http://127.0.0.1:8000即可正常加载页面
内容的提问来源于stack exchange,提问作者Emm
相关产品推荐
相关产品推荐

