小编Cry*_*per的帖子

备份大型 docker 卷、绑定挂载、/var/lib/docker/volumes/ (owncloud)

我在某种程度上“继承”了一个 docker 化的服务器环境,现在我必须实现一个备份概念 - 特别是对于 Owncloud 容器,它将用户文件存储在 docker 卷内。docer 文档 [1] 说“卷比绑定安装有几个优点”,因此“是首选机制”。列出的优点之一是“卷更容易备份”,文档建议使用如下命令来创建卷的 tar 备份:

$ docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
Run Code Online (Sandbox Code Playgroud)

但是,特别是对于备份(我使用 borg 备份将主机文件同步到异地存储库),我发现这种方式有几个缺点:

  • 对于每个备份,您都必须在本地复制整个数据,这需要两倍的磁盘空间和复制时间。
  • 每个备份都会创建一个新的 BLOB - 必须再次复制未更改的文件。
  • 要恢复单个 Owncloud 文件,您必须从备份中恢复整个 tar(在同步到备份之前解压将使所需的磁盘空间增加三倍)。...

我对 docker 还比较陌生,所以我可能还没有对 docker 生态系统有完整的了解。但据我目前所知,对于这种情况,我认为绑定安装是最好的解决方案。无论如何,我也没有从卷的其他优势中受益。或者我错过了什么?使用绑定安装有什么缺点吗?

直接备份 /var/lib/docker/volumes/ 怎么样?

通过搜索,我从 owncloud [2] 中找到了这篇博文,建议直接备份 /var/lib/docker/volumes/owncloud_files/_data 。对我来说,这似乎不是最干净的方式。

不过,考虑到目前的情况,我暂时想走这条路。安全吗?(当然,关于一致性所需的预防措施,例如关闭数据库容器、owncloud 维护模式等 - 我认为这里提到的解决方案以任何方式都需要这些!?)

[1] https://docs.docker.com/storage/volumes/

[2] https://owncloud.org/news/docker-series-pt-3-automatically-easily-backup-restore-dockerized-owncloud/

backup owncloud docker

5
推荐指数
1
解决办法
1871
查看次数

标签 统计

backup ×1

docker ×1

owncloud ×1