docker system prune -a 是一个非常有用的命令,用于清理 Docker 系统中未使用的资源,包括停止的容器、未使用的网络、卷以及未被任何容器引用的镜像(悬空镜像和所有未使用的镜像)。以下是关于该命令的详细说明:
命令格式
docker system prune -a
作用
- 清理停止的容器:删除所有已经停止的容器。
- 清理未使用的镜像:
- 删除所有悬空镜像(dangling images)。
- 删除所有未被任何容器引用的镜像。
- 清理未使用的网络:删除没有容器连接的自定义网络。
- 清理未使用的卷:删除没有容器关联的卷。
参数说明
- -a 或 --all:清理所有未使用的镜像,而不仅仅是悬空镜像。
- --volumes(可选):同时清理未使用的卷。如果不加此选项,卷不会被清理。
执行示例
1. 基本清理
运行以下命令清理所有未使用的资源:
docker system prune -a
系统会提示确认操作,输入 y 继续。
2. 清理并包含卷
如果需要同时清理未使用的卷,可以加上 --volumes 参数:
docker system prune -a --volumes
注意事项
- 谨慎使用:docker system prune -a 会删除所有未使用的镜像,包括那些你可能手动拉取但未使用的镜像。请确保不需要这些资源后再执行。
- 保留必要的资源:如果你有一些镜像或容器需要保留,建议先标记它们(例如重新创建容器或为镜像打标签)。
- 非交互模式:可以通过添加 -f 参数跳过确认提示:
docker system prune -a -f