You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清理Docker构建缓存,仅保留指定的RUN缓存?

清理Docker构建缓存并保留指定缓存的方案

要实现清理所有构建缓存但保留/app/zopflipng-cache这个专用挂载缓存,需要通过给缓存指定唯一ID+过滤清理的方式来实现,具体步骤如下:

1. 给目标缓存添加唯一标识

修改你的Dockerfile,在--mount=type=cache参数中加入id字段,为这个缓存设置固定的唯一ID(比如zopflipng-png-cache),这样后续可以精准定位它:

RUN --mount=type=cache,target=/app/zopflipng-cache,id=zopflipng-png-cache \
    python3 /app/compress_and_cache_png_images.py \
        dist \
        --cache-dir /app/zopflipng-cache

注:如果之前已经构建过镜像,未指定ID的缓存会有自动生成的随机ID,你可以通过docker buildx du命令列出所有缓存,找到对应/app/zopflipng-cache的缓存ID,直接用这个ID进行后续过滤即可(无需修改Dockerfile,但下次构建如果重新生成缓存ID会失效,所以建议固定ID)。

2. 执行过滤清理命令

使用docker buildx prune(或docker builder prune,二者对默认构建器等效),通过--filter参数排除目标缓存,清理其他所有构建缓存:

docker buildx prune --filter "cache.id!=zopflipng-png-cache" -f
  • --filter "cache.id!=zopflipng-png-cache":表示排除ID为zopflipng-png-cache的缓存,清理所有其他缓存
  • -f:强制执行清理,跳过交互确认步骤

验证缓存保留情况

执行清理后,可以用docker buildx du查看缓存占用,确认zopflipng-png-cache对应的缓存依然存在,其他缓存已被清理。

内容的提问来源于stack exchange,提问作者mooiamaduck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 18:57:39