6月2日 23:47
Docker 容器数据怎么备份和恢复?Volume 备份和数据库导出实战
Docker 容器的数据在 Volume 里——备份 Volume 就是备份数据。两种方式:直接备份 Volume 文件,或从容器内导出。
方法一:备份 Volume 目录
简单粗暴,但要求停掉容器或确保数据一致性(数据库正在写入时备份可能损坏)。
方法二:用临时容器备份
不停容器,用 --volumes-from 挂载同一个 Volume:
临时容器挂载 pg_data(只读)和宿主机 /backup 目录,把数据打包到宿主机。
数据库导出(推荐)
数据库不适合直接拷文件——文件可能处于不一致状态。用数据库的导出工具:
在容器里执行:
导出的是 SQL 文本,保证逻辑一致性,可以跨版本恢复。
恢复
数据库恢复用 psql/mysql 命令,不用拷文件。
自动化备份
备份文件要推到远程存储(S3、OSS),不要只存在本机——本机挂了备份也没了。
Docker Volume 备份 vs 数据库导出
- Volume 备份:快,但不保证一致性,适合非数据库文件
- 数据库导出:慢,但保证一致性,适合数据库
- 两者配合:Volume 备份应用配置/上传文件,数据库导出业务数据