技术与生活 / 一篇记录
持久卷解决的是生命周期,不是备份
数据库目录需要持久化,否则重新创建容器可能失去历史数据。
容器替换时保留数据,是卷的主要作用;误删除、错误写入和文件系统损坏,同样会作用在持久卷上。把数据放进卷后,备份策略才刚刚开始。
从一个例子看起
容器名与镜像名仅作示例;操作前先确认目标对象,不直接对不明数据执行清理。
docker volume ls
确认服务使用的卷名称,并记录备份与恢复方式。
排查时再往前走一步
记录卷与服务的对应关系,并验证恢复到独立环境。清理“未使用”资源时也要小心:暂时没有容器引用的卷,仍可能保存着需要保留的历史数据。
数据库的在线备份应使用数据库支持的方法获得一致状态。直接打包正在写入的数据目录,未必能形成可恢复副本。恢复验证需要使用相容版本,并在隔离位置进行。
持久卷不等于备份,误删或数据损坏仍会保留下来。
参考:Docker 文档。