求助:如何运行包含Django项目的Docker容器?
运行Django项目Docker容器的标准配置方案
一、标准Dockerfile模板
替换你当前的Dockerfile为以下经过验证的配置:
# 基于官方Python slim镜像(轻量且包含必要依赖) FROM python:3.11-slim # 设置容器内的工作目录 WORKDIR /app # 先复制requirements.txt,利用Docker缓存优化构建速度 COPY requirements.txt . # 安装项目依赖,添加国内镜像源提升安装速度 RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 复制整个Django项目到容器内 COPY . . # 暴露Django默认的8000端口 EXPOSE 8000 # 启动Django开发服务器,绑定0.0.0.0允许外部访问 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
二、必备前置文件
- requirements.txt:项目根目录必须包含该文件,列出所有依赖包,示例内容:
Django>=4.2 # 若有其他依赖(比如mysqlclient、redis等)也需添加
本地环境生成该文件的命令:pip freeze > requirements.txt
三、构建与运行步骤
- 构建Docker镜像:
docker build -t django-demo .
- 启动容器:
docker run -p 8000:8000 django-demo
如果需要本地代码修改后实时同步到容器:
docker run -p 8000:8000 -v $(pwd):/app django-demo
四、常见错误排查
- 依赖安装失败:检查requirements.txt是否存在语法错误,或替换PyPI镜像源为国内源
- 本地无法访问容器服务:确保Django启动命令绑定
0.0.0.0(而非默认的127.0.0.1),且本地映射端口与容器暴露端口一致 - 文件权限异常:Linux/macOS环境下,可在Dockerfile中添加
RUN chmod -R 755 /app解决目录权限问题 - 数据库连接失败:若使用外部数据库,需在Django的
settings.py中配置正确的数据库主机地址(使用容器名或宿主机IP)
内容的提问来源于stack exchange,提问作者DMB
相关产品推荐
相关产品推荐

