docker build cache 清理

本文介绍了如何使用 `docker builder prune` 命令来清理Docker的BuildCache,特别是如何设置参数保留480小时内的缓存,以释放大量磁盘空间。通过执行 `docker builder prune --filter 'until=480h'`,可以有效地管理和优化Docker的存储资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

docker system df 查看

root@ip-172-30-69-134 ~]# docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          41        1         10.66GB   10.63GB (99%)
Containers      1         1         0B        0B
Local Volumes   13        1         149.2MB   149.2MB (99%)
Build Cache     1952      0         165.7GB   165.7GB

可以看到 Build Cache 有 165.7GB 这么多。

docker builder prune' 清理

保留 480h 的 Build Cache, 清理其他的 Cache.

docker builder prune --filter 'until=480h'

References

  1. https://docs.docker.com/engine/reference/commandline/builder_prune/
### 如何在 Docker 安装过程中使用缓存 Docker 构建镜像的过程中会利用层(Layer)的概念,每一层都会被缓存以便加速后续的构建过程。如果某一层的内容发生变化,则该层及其之后的所有层都需要重新构建,而之前的层可以继续使用缓存。 #### 配置 Docker 缓存的方法 当运行 `docker build` 命令时,默认情况下 Docker 会在本地查找已有的镜像层作为缓存[^1]。可以通过以下几种方式进一步优化和控制缓存行为: 1. **保持 Dockerfile 层次结构稳定** 修改 Dockerfile 中较早的部分可能会使后面的层失效并触发重建。因此建议将频繁变化的操作放在文件后面,例如安装依赖项应先于复制应用代码执行。 2. **设置 --no-cache 参数禁用缓存** 如果希望完全忽略缓存,在命令中加入参数即可: ```bash docker build --no-cache . ``` 3. **指定目标阶段以重用中间产物** 对于多阶段构建(Multi-stage builds),能够单独针对某个特定阶段启用或停用缓存。比如只对基础环境部分保留缓存效果更好。 ```bash docker build --target base-env . ``` 4. **清理旧有未使用的缓存数据** 经过一段时间后可能积累了大量无用的历史版本记录占用磁盘空间,定期整理有助于提升性能同时也释放资源。 ```bash docker builder prune ``` 5. **借助远程 Registry 实现分布式共享缓存机制** 将初步完成的基础镜像推送到公共或者私有的仓库里供其他开发者下载同步使用从而减少重复劳动时间成本。 ```bash docker push myrepo/base-image:latest ``` 以上就是关于如何在 Docker 安装流程当中合理运用缓存的一些技巧说明[^2][^3]。 ```python def example_docker_build(): import subprocess command = ["docker", "build", "--pull", "-t", "myapp:v1", "."] result = subprocess.run(command, stdout=subprocess.PIPE) if result.returncode != 0: raise Exception("Failed to build the image.") example_docker_build() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值