在日常使用 Docker 的过程中,随着容器的反复创建与退出,主机上会积累大量已经停止的容器,逐个执行 docker rm 删除十分繁琐。下面介绍两种批量删除 Docker 中已经停止的容器的方法:
# 删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
docker rm $(docker ps -a -q)
# 根据容器的状态,删除 Exited 状态的容器
docker rm $(docker ps -aq -f status=exited)
第一条命令先用 docker ps -a -q 列出所有容器(包括正在运行的)的 ID,再交给 docker rm 逐个删除。由于 Docker 不允许删除正在运行的容器,运行中的容器会因报错而被跳过,最终只有未运行的容器被删除。
第二条命令通过 -f status=exited 只筛选出状态为 Exited 的容器,删除范围更加精确。
提示:新版 Docker 还提供了
docker container prune命令,可以一次性删除所有已停止的容器,效果与上面第二种方式类似。