使用 LVM 的快照功能完成 docker 容器挂载数据的备份
【注意】最后更新于 May 15, 2019,文中内容可能已过时,请谨慎使用。
在使用docker的过程中,一般是以 -v 参数挂载 host 的目录进入容器保留的。
可以使用 LVM 的快照,对容器数据进行快速备份。大致流程如下:
- 停掉需要备份的容器,让程序数据落盘
- 使用 lvcreate -s 命令生成快照。例如:lvcreate -s -L 10G -n snapshote-20190515 /dev/vg/root
- 重新启动容器,让程序继续提供服务
这个流程如果写到脚本程序中,总耗时,基本上相当于重启了一次应用程序的时间。因此,是非常简便的数据备份方式。
恢复流程
- 停掉容器
- 挂载需要的快照到某个挂载点。例如: mount -o ro /dev/vg/snapshote-20190515 /mnt/lvm-snapshot
- 以挂载点为根,找到需要恢复数据的目录,将数据拷贝到目的位置
- 重新启动容器,程序继续提供服务