一、批量删除镜像
如果你想要批量删除 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