“官方”docker备份策略 – 一致性如何?

在Docker中pipe理和备份数据的build议策略如下所示:

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 

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

你面临的基本问题,即备份更改文件是独立于docker。 使用诸如rsnapshot或dirvish之类的工具备份到一个卷中,然后根据您的可靠性要求,使用上面提到的方法将这些备份移到更安全的地方,如Amazon s3或glacier。

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

编辑:为了清晰。

Interesting Posts