天天看点

数据备份和恢复

本篇是第五部分“存储篇”的第二篇,上一篇我为你介绍了 Docker volume 的生命周期管理相关的内容,本篇我将为你介绍基于 Docker volume 的数据备份和恢复。

我们在使用 Docker 时,难免会有数据备份和恢复相关的需求,尤其是处理与数据库等有状态的应用有关的问题时。

一般情况下,我们可能会选择将数据先备份至硬盘上,再拷贝至其他目标位置,最后进行数据恢复。

另外一种选择则是直接使用分布式文件存储,数据直接备份在分布式文件存储中,目标位置直接挂载即可进行数据恢复。

上篇我为你介绍了 Docker volume,对于我们使用而言,Docker volume 完全由 Docker 进行管理,只需要挂载即可使用。使用中可以减少很多类似数据拷贝之类的繁琐工作。

下面我们以 Redis 容器的数据备份恢复为例。

准备配置文件

如果不为 Redis 提供配置文件的话,则它会使用内置的默认配置。这里我们为它提供一个配置文件,指定数据存储位置。

这个配置文件,我们直接将其放入一个新创建的 volume 中。

  • 创建 volume 存储配置文件
(MoeLove) ➜  ~ docker volume create redis-conf
redis-conf
           
  • 写配置文件
(MoeLove) ➜  ~ docker run --rm -it --mount src=redis-conf,dst=/redis-conf alpine
/ # cat <<'EOF' > /redis-conf/redis.c