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

Docker Compose运行正常但浏览器无法访问Django容器服务问题咨询

问题根因

Docker Compose 配置中的启动命令覆盖了 Dockerfile 定义的默认启动逻辑,将 Django 开发服务器绑定到了容器内部的本地回环地址 localhost:8000。该地址仅接收容器内部的请求,宿主机的端口转发规则无法将外部请求转发到这个地址,因此浏览器访问会触发连接重置报错。
单独运行容器时直接使用了 Dockerfile 中绑定 0.0.0.0:8000 的默认启动命令,该配置允许接收所有网卡的请求,所以访问正常。

解决方法

任选以下一种方案修改即可:

  • 方案1:修改 docker-compose.yml 中的启动命令,调整绑定地址为 0.0.0.0:8000,修改后配置如下:
version: "3.9"
   
services:
   web:
       build: .
       command: python3 manage.py runserver 0.0.0.0:8000
       ports:
           - 8000:8000
  • 方案2:如果不需要自定义启动逻辑,直接删除 docker-compose.yml 中的 command 字段,自动复用 Dockerfile 中定义的默认启动参数即可。

修改完成后执行 docker-compose up --build -d 重新启动服务,再访问 localhost:8000 即可正常加载页面。

补充说明:日志中提示的主键类型警告不影响服务运行,若要消除警告,可在 Django 项目的 settings.py 中添加配置 DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:24:03