docker system prune 是一个用于清理 Docker 系统资源的命令。它用于删除未使用的数据(如未使用的镜像、容器、网络和存储卷)以释放磁盘空间。
这个命令可以帮助您清理 Docker 环境中积累的废弃资源,从而释放磁盘空间并提高系统性能。但请注意,使用此命令会永久删除这些资源,因此请确保您不再需要它们。
以下是 docker system prune 的常见用法:
- 清理未使用的镜像和容器:
docker system prune
该命令将提示确认是否要清理未使用的镜像、容器、网络和存储卷。您可以输入 y 确认清理。
- 自动确认清理:
如果想跳过确认提示,可以使用 -f 标志来自动确认清理:
docker system prune -f
这将自动清理未使用的镜像、容器、网络和存储卷,而无需手动确认。
- 清理包括未使用的镜像:
如果希望一并清理未使用的镜像,可以使用 --all 或 -a 标志:
docker system prune -a
这将清理所有未使用的镜像、容器、网络和存储卷,释放更多磁盘空间。
在执行这些命令之前,请确保了解其将删除哪些资源,并确认这些资源确实不再需要。
注意:docker system prune -a 是一个非常有用但也需要小心使用的 Docker 命令。这条命令的作用是清理Docker环境中不再需要的资源,以节省存储空间。这些资源包括已停止的容器、未使用的网络、悬挂的镜像以及构建缓存。
具体来说,docker system prune -a 会做以下操作:
- 删除所有已停止的容器:这可以帮助释放被这些容器占用的存储空间。
- 删除所有未使用的网络:这些网络通常在不再需要时应当被删除。
- 删除所有悬挂的镜像:悬挂的镜像是没有标签的镜像,这些镜像通常是由于新版本的镜像被拉取后,旧版本的镜像失去了其原有的标签而成为悬挂的。
- 由于 -a 选项,命令还会删除所有未被任何容器引用的镜像,不仅仅是悬挂的镜像。这意味着,即使某个镜像有标签,但如果它没有被任何容器使用,那么它也会被删除。
- 删除所有的构建缓存:这些缓存通常用于加速Docker镜像的构建,但在某些情况下,它们可能会占用大量的存储空间。
使用此命令时应当非常小心,因为一旦资源被删除,就无法恢复。在执行此命令之前,建议先备份所有重要的数据和容器。
如果只想清理特定的资源,例如只删除已停止的容器,可以使用其他更具体的命令,如 docker container prune。