docker compose down -v 毁灭
docker compose down -v会删除所有匿名卷和命名卷,包括press-db-data(整个供应链数据库)、press-sites(站点文件)、press_ssh(SSH 密钥)。一条命令让 Press 回到出厂状态。
1. 归属
| 问题 | 答案 |
|---|---|
| 属于哪个仓库? | 8 文件中的 docker-compose.yml |
| 在容器内路径? | ~/press/docker-compose.yml |
| 在构建链的哪一步? | 运维层面的 Docker 操作 |
2. 功能解释
docker compose down 的三种模式:
| 命令 | 效果 |
|---|---|
docker compose down | 停容器,不删卷 |
docker compose down -v | 停容器 + 删所有命名卷 |
docker compose down --rmi all -v | 停容器 + 删卷 + 删镜像 |
3. 为什么会出现这个问题
当前 docker-compose.yml 中的卷是 compose 自动创建的命名卷。默认 compose down -v 会删除它们。这是 Docker 的设计行为,不是 bug。但运维时手滑一下后果严重。
4. 补丁/修改做了什么
未修复。CLAUDE.md 记录了这是”当前架构最大的脆弱点”。
5. 性质判断
设计缺陷。卷没有额外的防误删保护。
6. 正确做法
docker-compose.yml 中卷声明加 external: true。external: true 的卷不会被 down -v 删除。SolarFlow 部署时直接在 compose 文件里写死。
7. 影响范围
- 按错一次 = Press 数据全毁
- 有备份可恢复,但 30 分钟恢复时间