"官方"docker备份策略 - 一致性如何?

S1l*_*0rm 5 backup consistency docker

在docker中管理和备份数据的建议策略如下所示:

docker run --name mysqldata -v /var/lib/mysql busybox true
docker run --name mysql --volumes-from mysqldata mysql
docker run --volumes-from mysqldata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

但是,当我以这种方式备份运行容器时,我不会获得一致的备份,是吗?我知道像这样的工具mysqldump,但是如果我需要备份,例如,不断添加和删除文件的文件夹,该怎么办?

Usm*_*ail 1

您面临的根本问题,即备份更改的文件与 docker 无关。使用rsnapshotdirvish等工具将备份制作到卷中,然后根据您的可靠性要求使用上面提到的方法将这些备份移动到 Amazon s3 或 glacier 等更安全的地方。

无论您使用 -v 开关从另一个容器还是主机虚拟机挂载卷,对文件的更改都会或多或少实时地反映在所有容器(或主机虚拟机)中。(由于 docker 在主机 fs 之上使用 AUFS,因此存在一些延迟,但它并不大)。如果备份容器永久运行,它可以继续进行备份,并且文件将始终反映 mysql 容器看到的最新文件。

编辑:为了清楚起见。