有没有一种方法可以清理Docker构建缓存?

48

我在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镜像 - Nico Haase
1
不好意思,我不知道如何删除构建缓存。我只知道如何删除镜像和容器。你可以看到,在 df 输出中,构建缓存是一个单独的项目,而且非常大。 - StasM
2
请尝试访问此链接:https://docs.docker.com/engine/reference/commandline/builder_prune/ - Ishan
@Ishan 是的!这似乎有效,将构建缓存从258G减少到仅37G,看起来更加合理。虽然我没有看到这个空间被回收(Docker桌面仍然显示相同的磁盘使用情况),但我认为这可能是解决方案。你能把它添加为答案,这样我就可以批准它了吗? - StasM
2个回答

58

1
--all 有所作为。没有它,它就无法工作。(在OsX上) - BertC
1
在我的情况下,图像被修剪后,Docker 重启可以完全清除缓存。 - Deiveegaraja Andaver


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接