75 lines
1.6 KiB
Markdown
Executable File
75 lines
1.6 KiB
Markdown
Executable File
# 批量删除已停止的 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` 命令,更简洁安全。
|