Docker Build Cache 缓存清理

Posted catoop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker Build Cache 缓存清理相关的知识,希望对你有一定的参考价值。

Docker 18.09 引入了 BuildKit ,提升了构建过程的性能、安全、存储管理等能力。

docker system df 命令,类似于 Linux上的 df 命令,用于查看 Docker 的磁盘使用情况:

[root@test /]# docker system df
TYPE                TOTAL               ACTIVE              SIZE                RECLAIMABLE
Images              34                  34                  10.1GB              105.6MB (1%)
Containers          60                  41                  925.2MB             615.9MB (66%)
Local Volumes       40                  16                  1.481GB             6.402MB (0%)
Build Cache         509                 0                   17.17GB             17.17GB

TYPE 列出了 Docker 使用磁盘的 4 种类型:

类型说明
Images所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。
Containers运行的容器占用的空间,表示每个容器的读写层的空间。
Local Volumes容器挂载本地数据卷的空间。
Build Cache镜像构建过程中产生的缓存空间(只有在使用 BuildKit 时才有,Docker 18.09 以后可用)。

最后的 RECLAIMABLE 这一列表示可回收的大小。

一键清理 Build Cache 缓存命令:

docker builder prune

如果你希望保留最近一定时间的缓存,删除时长更久的缓存,可以通过添加 --filter 参数实现,例如保留最近10天的缓存示例命令如下:

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

官方资料:https://docs.docker.com/engine/reference/commandline/builder_prune/

另外,命令 docker system prune 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

添加参数 docker system prune -a 清理得更加彻底,可以将没有容器使用Docker镜像都删掉。

注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的 Docker 镜像都删掉,请注意使用!


(END)

以上是关于Docker Build Cache 缓存清理的主要内容,如果未能解决你的问题,请参考以下文章

docker build 不使用缓存重建镜像

docker build 不使用缓存重建镜像

docker build --no-cache 会构建不同的层吗?

借助层级缓存优化Dockerfile

ubuntu 手动释放缓存 (清理内存cache)

buff/cache内存缓存过大,设置定时清理