# 批量删除已停止的 Docker 容器 ## 方法一:使用 docker ps + awk(最常用) ```bash # 查看所有已停止的容器 sudo docker ps -a | grep Exited # 获取已停止容器的 ID sudo docker ps -a | grep Exited | awk '{print $1}' # 批量删除已停止容器 sudo docker rm $(docker ps -a | grep Exited | awk '{print $1}') ``` ## 方法二:删除所有未运行的容器 ```bash # 删除所有未运行的容器 sudo docker rm $(sudo docker ps -a -q) ``` ## 方法三:根据容器状态删除(Docker 1.13+) ```bash # 删除所有 Exited 状态的容器 sudo docker rm $(docker ps -qf status=exited) ``` 参数说明: - `-q`:只输出容器 ID - `status=exited`:筛选已退出的容器 - `status=created`:筛选已创建但未启动的容器 - `status=running`:筛选正在运行的容器 ## 方法四:docker container prune(Docker 1.13+ 推荐) ```bash # 删除所有已停止的容器(交互式确认) docker container prune # 直接删除,不确认(适合脚本) docker container prune -f ``` ## 方法五:删除所有容器(谨慎使用) ```bash # 删除所有容器(包括运行中的) docker rm -f $(docker ps -aq) # 仅删除已停止的容器 docker container prune -f ``` ## 完整流程示例 ```bash # 1. 查看当前容器状态 docker ps -a # 2. 统计已停止容器数量 docker ps -a | grep Exited | wc -l # 3. 批量删除已停止容器 docker rm $(docker ps -aq -f status=exited) # 4. 确认删除结果 docker ps -a ``` --- > Docker 1.13+ 版本建议使用 `docker container prune` 命令,更简洁安全。