无论是 Linux 还是 Windows,Docker 运行久了会产生海量垃圾文件!
今天我学会了一个命令,一次性释放了我的Windows30G空间!
`docker system prune -a --volumes`** 是官方提供的一键强力清理命令,能瞬间释放几十 G 的硬盘空间。
*前排提示:如果不确定是否有需要保留的volume,请阅读文章最后的替代方案。*
## 一、 这个命令删除了什么?
它会一键抹去 Docker 中**所有未被使用**的资源,具体包括:
- **`-a` (或 `--all`)**:删除所有已停止的容器,以及**所有未被运行中容器使用的镜像**(不再局限于无标签的虚无镜像)。
- **`--volumes`**:删除**所有未被任何容器挂载的数据卷**(通常是残留的数据库或应用数据)。
- **网络与缓存**:删除未使用的网络和构建缓存。
> ⚠️ **核心原则**:只要容器目前处于 **Running (运行中)** 状态,它所依赖的容器、镜像和数据卷就**绝对不会**被删除。
## 二、 风险提示(执行前必看)
按下回车前,请务必确认:
1. 你没有临时停止(Stop)但后续还要启动的重要容器。
2. 你没有为了以后恢复数据,而故意留下的孤儿数据卷(如 MySQL 的数据卷)。
3. **一旦删除,数据无法恢复!**
## 三、 实战使用步骤
### 1. 核对运行状态
先确保重要容器都在运行中:
```Bash
docker ps
```
### 2. 执行清理
在终端输入命令:
```Bash
docker system prune -a --volumes
```
### 3. 确认触发
系统会弹出警告并询问,输入 **`y`** 回车即可:
```Plaintext
Are you sure you want to continue? [y/N] y
```
### 4. 战果
清理完成后,最底部会显示释放的空间:
```Plaintext
Total reclaimed space: 14.52GB # 成功夺回 14.52 GB 空间!
```
## 替代方案(更温和的清理)
更温和的方案,就是删掉参数,具体如下:
```Bash
# 只删死掉的容器和虚无镜像(最安全,不删大镜像和数据)
docker system prune
# 不删数据卷,只删死容器和不用镜像
docker system prune -a
```