Ubuntu 18.04下Docker构建Django项目过慢及断点续建求助
解决Docker构建Django项目的速度与续建问题
一、加快Docker构建速度的实用方案
- 配置国内Docker镜像源:Ubuntu 18.04下新建或编辑
/etc/docker/daemon.json文件,写入以下内容:
执行{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com"] }sudo systemctl daemon-reload和sudo systemctl restart docker生效,能大幅提升官方镜像的下载速度。 - 选用轻量基础镜像:避免使用体积庞大的全量镜像,比如用
python:3.9-slim替代完整的python:3.9,减少下载和提取的数据量。 - 利用Docker分层缓存优化Dockerfile:将依赖安装步骤前置,确保只有依赖文件变化时才重新执行安装。示例Dockerfile:
FROM python:3.9-slim WORKDIR /app # 先复制依赖清单,利用缓存 COPY requirements.txt . # 用国内PyPI源加速依赖安装 RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # 最后复制项目代码 COPY . . CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] - 清理Docker冗余资源:定期执行
docker system prune -a,清理未使用的镜像、容器和缓存,释放磁盘空间并避免缓存干扰。
二、实现Docker构建续建的方法
- 确保Docker缓存正常生效:Docker默认会复用已完成的镜像层,只要未修改已完成阶段的Dockerfile内容,重启构建时会自动跳过已完成步骤。若当前不生效,检查基础镜像或前置步骤的Dockerfile内容是否有变动。
- 手动预拉取基础镜像:如果是镜像下载中断导致无法续建,先手动拉取所需基础镜像,比如
docker pull python:3.9-slim,完成后再执行docker build,构建时会直接使用本地已下载的镜像。 - 启用BuildKit构建(推荐):BuildKit原生支持构建中断续建功能,开启方式如下:
- 编辑
/etc/docker/daemon.json,添加:
重启Docker服务:{ "features": { "buildkit": true } }sudo systemctl restart docker - 构建时使用命令:
DOCKER_BUILDKIT=1 docker build .,BuildKit会自动记录进度,中断后重启可从上次断点继续。
- 编辑
额外提示
若之前的回复出现系统安装报错且无法评论,建议检查Docker版本与Ubuntu 18.04的兼容性,Ubuntu 18.04推荐安装Docker CE 20.10.x版本,安装命令:
sudo apt-get update sudo apt-get install docker-ce=5:20.10.24~3-0~ubuntu-bionic docker-ce-cli=5:20.10.24~3-0~ubuntu-bionic containerd.io
内容的提问来源于stack exchange,提问作者William Page
相关产品推荐
相关产品推荐

