docker 批量快速删除容器和镜像

时间:2024-10-01 16:38:26

一、批量删除镜像

如果你想要批量删除 Docker 镜像,可以使用各种命令。以下是一些示例:

1. 删除所有镜像:

docker rmi $(docker images -q)

2. 删除所有未标记的镜像(即 <none> 镜像):

docker rmi $(docker images -f "dangling=true" -q)

请注意,根据你的 Docker 版本和设置,你可能需要在上述命令前添加 sudo 来获取必要的权限。

这些命令使用了一些 Docker 的命令选项,例如 -q(仅显示镜像的 ID),-f(过滤结果)以及特殊过滤器 "dangling=true"(找出所有未标记的镜像,为什么是dangling,还在探索中)

在执行这些命令时务必小心,因为删除的镜像无法恢复。如果你只是想清理一些空间,还有其他方法,例如使用 docker system prune 命令。此命令可以清理未使用的数据。

二、批量删除容器

1. 在 Docker 中,你可以运行下面的命令来批量删除所有运行中的容器:

docker rm $(docker ps -aq)

解释一下上面的命令:

  • docker ps -aq:这将返回所有容器的 ID (不论容器状态)。
  • docker rm:这是用来删除一个或多个容器的命令。
  • $(docker ps -aq):这将命令 docker ps -aq 的结果作为参数传递给 docker rm 命令,从而删除所有的容器。

2. 如果我只想删除匹配的容器,例如批量删除镜像名包含ubuntu的容器,命令如下:

docker ps | grep ubuntu | awk '{print $1}' | xargs docker rm

3. 如果你只想删除所有已经停止的容器,你可以使用 docker container prune 命令:

docker container prune -f

在这里,-f 参数表示强制执行删除操作,不会提示确认。

注意:在执行这些命令前,要确保你真的想删除这些容器。这些操作是不可逆的。

4. 如果你想删除运行中的容器,通常需要先 stop 容器再 rm 容器,也可以使用 rm -f ,快速删除运行中的容器:

docker rm  -f  test