清理 Docker 缓存通常是为了释放磁盘空间。这主要包括清理已停止的容器、无用的镜像、未使用的数据卷和网络。
注意: 请谨慎执行这些命令,它们会永久删除数据。在执行前,请确保您不再需要这些数据。
# 1. 综合清理命令(最常用)
这是最推荐的 “一键清理” 命令,它会清理大部分无用对象:
docker system prune |
这个命令会提示您确认,然后删除:
- 所有已停止的容器
- 所有未使用的网络
- 所有悬空的镜像(dangling images,即没有标签且未被任何容器引用的镜像)
- 所有悬空的构建缓存
# 2. 更彻底的综合清理
如果您想进行更彻底的清理,可以添加 -a (或 --all ) 标志。
docker system prune -a |
这将在上述 system prune 的基础上,额外删除:
- 所有未被任何容器使用的镜像(不仅仅是悬空镜像)。
# 3. 清理数据卷(重要)
默认情况下, docker system prune 不会删除数据卷(Volumes),因为它们可能包含您不想丢失的数据库或应用数据。
如果您确认不再需要任何未使用的数据卷,可以运行:
docker volume prune |
或者,您也可以在 system prune 命令中明确包含数据卷:
docker system prune --volumes |
# 4. 清理构建缓存
如果您经常使用 docker build 构建镜像,构建缓存可能会占用大量空间。您可以使用以下命令专门清理构建缓存:
docker builder prune |
# 总结推荐
- 快速、安全清理:
docker system prune - 强力清理(释放最多空间,会删除未使用的镜像):
docker system prune -a
- 最强力清理(强力清理 + 删除未使用的数据卷):
docker system prune -a --volumes
在执行任何清理命令之前,您可以使用以下命令查看 Docker 占用的磁盘空间情况:
docker system df |
这个命令会列出镜像、容器、本地数据卷等占用的空间。
您想了解某个特定命令(比如 docker volume prune )的详细用法吗?