现状
目前使用Docker部署了一堆服务大概50多个,稳定运行1年+
目前方案
使用 Kopia + Alist 的 WebDav 备份运行文件,数据库文件未备份。
备份内容
- 映射到宿主机的Docker应用运行文件
- SQLite数据库文件(可等同于文件备份)
- Redis数据文件(可等同于文件备份)
- MySQL数据库(目前未备份)
- Posgress数据库(目前未备份)
- MongoDB数据库(目前未备份)
目标
现寻求方案能够更加优雅的完成备份
- 支持数据备份
- 支持定期备份
- 支持多备份目标
- 能够利用Alist的Webdav协议备份到多种云盘服务
- [可选] 能用Docker部署
- [可选] 有Web管理界面
在这里先谢各位佬友了
9 Likes
AixSir
(SavantCrew)
4
目前我的Docker服务都是跑在1panel面板上的,可以通过计划任务设置很多备份方案,不过目前我只备份了数据库。
可以一键设置的指令如下:
备份账号支持设置:S3存储(大厂的基本都包含)、OneDrive、SFTP、WebDav,可一键设置多个备份目的地
1 Like
seamee
(不紧不慢不快不慢)
5
我也是用的 1panel,不用 1panel 的把挂载的存储卷和 compose 文件备份一下就好了,恢复起来很快
1 Like
谢谢你的建议
1panel对我而言还是有限制,我的Docker Comopose没用1Panel管理,应用数据(存储卷)备份和Compose文件备份应该没问题;数据库在Docker的网络里面,首先网络上需要映射端口,其次备份文件总归没有备份通过调用命令生成备份文件好,会有点儿限制。
我仔细看了1Panel的功能,如果Compose没用1Panel管理好像就不太好备份,不过在1Panel里面跑定时任务的思路还是可以的。
seamee
(不紧不慢不快不慢)
10
我以前也找过备份方案,没看到太好的,就继续用 1panel 的了,1panel 还有个快照功能,可以备份包括数据库等所有 1panel 管理的内容,希望能找到更好的项目
1 Like
MuLing
(肥仔快乐水)
15
修改docker的数据目录,然后mysql这些采用卷的方式来持久化数据,然后就只需要通过rsync定时同步这些数据即可
1 Like
感谢回复,但是这种方式并不能很好的保护数据。
备份是可以分为两个阶段的:
- 将数据备份成文件或者其他载体,并妥善保存。
- 能够将备份文件完整恢复为备份时的服务
您提供的方法仅仅能够完成第一步的目标,第二步是会有出问题的风险。
可以参考下面的资料
你都用kopia了,应该也自带policy修改定时backup吧。关于数据方面,你可以直接backup docker的volume吧
kopia和连接云盘的Alist Webdav服务有兼容问题,产生大量临时文件,而且kopia不支持多仓库的备份。
我目前是kopia到s3对象存储,选择kopia主要是自带增量去重还有版本控制。至于你说的多仓库是啥意思,意思是你一台机子想同时备份到几个repo吗?
MuLing
(肥仔快乐水)
20
docker启动的服务都采用docker-compose的方式部署,然后只要灾备端有对应的yaml文件和数据文件,重新恢复启动不是很轻松么?