dev.to | 📄 原文链接 | 2026-08-05 收录

我的备份泄漏了 156 GB、填满磁盘还弄垮了自己,修复只需一个字母

来源:dev.to — 2026-08-04

📋 概述

作者维护的网站每晚备份含一个“验证”步骤:把新 dump 恢复进一次性 postgres 容器并跑健全性查询——因为“从未恢复过的备份只是希望,不是备份”。某周这个门禁开始反复失败(postgres did not become ready),随后机器连 SSH 都断了。排查后发现真相:`df -h /` 显示 61% 没问题,但 Docker 的 data-root 在独立分区 /mnt/data 上早已 0 字节可用,罪魁是 57 个一模一样的 156 GB 悬空匿名卷(全是 pgdata)。机制由三个本身无害的事实组成:postgres 镜像声明 VOLUME,不挂载就会为每个容器静默创建匿名卷;`--rm` 只在容器自行退出时生效,被 kill 或超时的运行到不了那一步;清理这类运行用的是 `docker rm -f`,不带 `-v`。

🔑 核心要点

💡 金句

A backup you never restored is a hope, not a backup.
← 返回 Dev.to 首页