在使用docker的过程中,一般是以 -v 参数挂载 host 的目录进入容器保留的。

可以使用 LVM 的快照,对容器数据进行快速备份。大致流程如下:

  1. 停掉需要备份的容器,让程序数据落盘
  2. 使用 lvcreate -s 命令生成快照。例如:lvcreate -s -L 10G -n snapshote-20190515 /dev/vg/root
  3. 重新启动容器,让程序继续提供服务

这个流程如果写到脚本程序中,总耗时,基本上相当于重启了一次应用程序的时间。因此,是非常简便的数据备份方式。

恢复流程

  1. 停掉容器
  2. 挂载需要的快照到某个挂载点。例如: mount -o ro /dev/vg/snapshote-20190515 /mnt/lvm-snapshot
  3. 以挂载点为根,找到需要恢复数据的目录,将数据拷贝到目的位置
  4. 重新启动容器,程序继续提供服务