当前位置: 首页 > news >正文

如何清理docker build的缓存

在使用 Docker 构建镜像时,Docker 会利用构建缓存来加速后续的构建过程。如果某一层及其所有上层未发生变化,Docker 就会重用这一层的缓存。虽然这可以显著提升构建速度,但有时你可能希望强制 Docker 忽略缓存,以确保从头开始重新构建,或者你可能想要清理缓存来释放磁盘空间。下面是一些处理 Docker 构建缓存的方法:

强制重新构建镜像(无缓存构建)

如果你的目的是确保 Docker 从头开始构建镜像,而不使用任何缓存层,你可以在构建时添加 --no-cache 参数。这使得 Docker 在构建过程中不会使用任何缓存层,因此可以确保所有内容都是最新的:

docker build --no-cache -t myimage:latest .

清理悬空镜像

悬空镜像是指那些不再被任何镜像标签所引用的镜像。在多次构建镜像之后,可能会积累很多这样的镜像。你可以使用以下命令来删除这些悬空镜像,这也会间接清理掉一部分构建缓存:

docker image prune

清理未使用的 Docker 资源

Docker 提供了一个更一般的命令来清理未使用的资源,包括:停止的容器、未使用的网络、悬空镜像以及构建缓存。使用以下命令:

docker system prune

如果你想要同时清理未被任何容器引用的镜像,可以加上 -a 参数:

docker system prune -a

**注意:**这将删除所有未使用的镜像,而不仅仅是悬空镜像。

清理构建缓存

从 Docker 17.07 版本开始,Docker 引入了一个新的命令专门用于清理构建缓存:

docker builder prune

这个命令会删除所有未被使用的构建缓存,释放空间。如果你想要更精细的控制,比如删除一定时间之前的缓存,可以使用 --filter 参数,例如:

docker builder prune --filter "until=24h"

这个命令会删除 24 小时前创建的所有构建缓存。

结论

根据你的需求,可以通过不同的方式来管理 Docker 的构建缓存。无缓存构建可以确保你的镜像总是用最新的层来构建,而清理命令可以帮你管理磁盘空间,防止构建缓存占用过多的空间。正确地使用这些命令可以让你的 Docker 使用更加高效。

http://www.lryc.cn/news/382027.html

相关文章:

  • OceanBase v4.2 特性解析:如何用分页保序功能解决MySQL模式分页查询不稳定
  • RK3588/算能/Nvidia智能盒子:加速山西铝业智能化转型,保障矿业皮带传输安全稳定运行
  • 2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决
  • 桌面编辑器ONLYOFFICE 功能多样性快来试试吧!
  • 三维渲染中的散光圆
  • Vue3 + Ant-Design 中 a-date-picke 实现选择切换年份 没有鼠标光标,输入框内自带‘年’
  • Jetpack Compose_Alignment对其+Arrangement排列
  • Vue进阶之Vue无代码可视化项目(五)
  • 【Linux进程】Linux下的---七大进程状态(什么是进程状态?Linux下有哪些进程状态?)
  • Linux的dev/ 和 sys/ 和 proc/ 目录
  • 代码随想录算法训练营day64 | 98. 所有可达路径
  • php上传zip压缩包到服务器并解压,解析压缩包内excel表格数据导入到数据库
  • 48-5 内网渗透 - JuicyPotato、Pipe Potato提权
  • Windows C++ 应用软件开发从入门到精通详解
  • Leetcode 3195. Find the Minimum Area to Cover All Ones I
  • ONLYOFFICE8.1版本桌面编辑器测评
  • 线性代数|机器学习-P15矩阵A的低秩变换下的逆矩阵
  • 强强联合 极光推送(JPush)成为华为生态市场首家推送类SDK服务商
  • 防止在 Qt 中触发信号
  • 【UML用户指南】-17-对基本行为建模-交互
  • Java中的类加载器与热部署技术详解
  • 【事件总线】EventBus
  • LeetCode 热题100 --双指针
  • 从《深入设计模式》一书中学到的编程智慧
  • Redis 基本配置
  • 【C++庖丁解牛】函数栈帧的创建与销毁
  • Java基础16(集合框架 List ArrayList容器类 ArrayList底层源码解析及扩容机制)
  • 数组:移除元素
  • 胡说八道(24.6.22)——通信杂谈(完结)
  • 设计模式原则——里氏替换原则