Linux下清理Docker无用资源同时保留构建缓存的方法
Docker清理方案:保留构建缓存同时清理无用资源
根据你的docker system df输出,所有镜像都是未被使用的可回收状态,容器已无残留,本地卷虽有59个但占用空间为0,构建缓存目前占用极小且需要保留。以下是针对性的清理方法:
1. 单独清理无用镜像
使用专门的镜像清理命令,不会触及构建缓存:
docker image prune -a
-a参数会删除所有未被任何容器引用的镜像(包括非悬空镜像),正好匹配你当前247个未激活镜像的场景。- 若需要跳过交互确认,加
-f参数:docker image prune -af
2. 清理停止的容器(可选)
当前你的容器数量为0,此命令可作为日常维护:
docker container prune -f
仅删除已停止运行的容器,完全不影响构建缓存。
3. 清理未被使用的本地卷
你的本地卷占用空间为0,大概率是悬空卷(无容器关联),可安全清理:
docker volume prune -f
仅删除未被任何容器挂载的卷,与构建缓存无交集。
4. 组合清理命令
可以将上述命令合并执行,一次完成所有清理:
docker image prune -af && docker container prune -f && docker volume prune -f
为什么docker system prune会丢失构建缓存?
默认的docker system prune会删除所有未被使用的Docker资源,包括构建缓存(Build Cache)。而上述单独的清理命令仅针对镜像、容器、卷三类资源,不会触及构建缓存,因此能保留对后续构建有帮助的缓存数据。
进阶:精细控制镜像清理
如果需要保留特定镜像,可通过过滤参数实现:
- 删除24小时前创建的未使用镜像:
docker image prune -a -f --filter "until=24h" - 保留带有特定标签的镜像(比如
my-project),删除其他未使用镜像:docker images | grep -v "my-project" | awk '{print $3}' | xargs docker rmi
内容的提问来源于stack exchange,提问作者Marcos Vile
相关产品推荐
相关产品推荐

