Docker 清理缓存
第一步:查看当前状况
查看整体磁盘使用情况:
docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 11 8 5.461GB 861.3MB (15%)
Containers 9 7 24.71MB 45.46kB (0%)
Local Volumes 0 0 0B 0B
Build Cache 33 0 3.096GB 3.096GB
查看详细信息(可选):
docker system df -v
这会显示镜像、容器、本地卷和构建缓存各占用多少空间。
第二步:分析并选择清理策略
根据查看结果,判断哪些占用空间最多:
Build Cache 占用大 → 重点清理构建缓存
Images 占用大 → 重点清理镜像
Containers 占用大 → 重点清理容器
第三步:渐进式清理
温和清理(推荐首选):
# 清理未使用的构建缓存
docker builder prune
# 清理停止的容器、未使用的网络和悬空镜像
docker system prune
# 清理停止的容器、未使用的网络和悬空镜像 -f 参数的含义是 --force,表示强制执行,跳过确认提示。
docker system prune -f
会弹出如下警告提示信息:
# 输入y,立即进行删除
WARNING! This will remove all dangling build cache. Are you sure you want to continue? [y/N]
查看清理效果:
docker system df
第四步:深度清理(如果需要)
如果空间还不够,继续:
# 清理所有未使用的镜像
docker image prune -a
# 清理所有构建缓存(包括正在使用的)
docker builder prune -a
再次查看效果:
docker system df
第五步:终极清理(谨慎使用)
如果确实需要释放最大空间:
# 警告:这会删除所有未使用的资源
docker system prune -a
# 如果连数据卷也要清理(非常危险)
docker system prune -a --volumes
完整的一键脚本
#!/bin/bash
echo "=== Docker 缓存清理 ==="
echo "清理前状态:"
docker system df
echo ""
echo "开始清理未使用的资源..."
docker system prune -f
echo ""
echo "清理后状态:"
docker system df
echo ""
echo "清理完成!"
优势: 这种渐进式方法让你能够控制清理程度,避免意外删除重要资源,同时能清楚看到每一步的效果。
Last updated
Was this helpful?