我在 MacOS 中使用 Docker 运行了很多构建。最终,会积累大量构建缓存,例如这就是我在
docker system df
中看到的:
YPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 22 0 9.67GB 9.67GB (100%)
Containers 0 0 0B 0B
Local Volumes 0 0 0B 0B
Build Cache 1006 0 258GB 258GB
有没有办法从构建缓存中清除项目?我可以看到它们的详细列表,例如:
CACHE ID CACHE TYPE SIZE CREATED LAST USED USAGE SHARED
045834a7a6e9 regular 11.1MB 3 weeks ago 0 false
114ca5b7280f regular 114MB 3 weeks ago 0 false
27d6fcbb531d regular 1.65kB 3 weeks ago 0 false
3042a2a59d4f regular 553kB 3 weeks ago 0 false
3d70c1a312eb regular 468MB 3 weeks ago 0 false
658aaefc4cdd regular 209MB 3 weeks ago 0 false
7d5b48149871 regular 59.9MB 3 weeks ago 0 false
86569a54d5d4 regular 16.5MB 3 weeks ago 0 false
等等。与
docker system df -v
但我认为删除任何数据的唯一方法是完全擦除所有 Docker 数据,包括图像等,这是我不想做的。有没有其他方法可以让Docker回收空间呢?我可以看到这些对象,但找不到删除它们的方法...
P.S.1 这个问题不是关于如何删除图像和容器。我知道如何删除它们,不幸的是删除它们对继续占用空间的“构建缓存”内容没有任何作用。
P.S.2 这在 MacOS 上尤其重要,因为 Docker 在一个特定的分配卷中运行,这种方式很快就会耗尽,并且在构建时我开始遇到“磁盘空间不足”错误。由于构建是重复完成的,因此保留旧构建中的数据对我来说没有用,因此找到一种删除旧构建缓存的方法会很棒。
docker builder prune --all
更多详细信息:https://docs.docker.com/engine/reference/commandline/builder_prune/
此命令帮助我强制清除所有 docker [compose] build/container/image/env 缓存。所有环境都将从内存中删除,一切都将被重建。
docker system prune --all --force
希望有帮助!