背景:
seafile是我一直在用的同步软件。去年9月份开始,已将绝大部分的工作资料、笔记都在存在上面,共计有280多G了。最近入手了威联通的nas,需要将seafile从安装版迁到docker版来运行。
迁移前的软件状态:
- VERSION: seafile-pro-server-6.3.9
- 数据库: mysql
- 其他功能:
- https
- pdf view
- search
迁移前的备份
根据官方的备份文档,主要是两类数据:1,数据库文件;2,数据文件
数据库文件备份
mysqldump -h [mysqlhost] -u[username] -p[password] --opt ccnet-db > /backup/databases/ccnet-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump -h [mysqlhost] -u[username] -p[password] --opt seafile-db > /backup/databases/seafile-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
mysqldump -h [mysqlhost] -u[username] -p[password] --opt seahub-db > /backup/databases/seahub-db.sql.`date +"%Y-%m-%d-%H-%M-%S"`
数据文件备份
其实就是对seafile/seafile-data/
这个文件夹的备份。
其他备份
除些之外,我还备份了配置目录seafie/conf/
qnap docker建立
由于是不同平台,不同方式的软件部署,一开始还是很不确定是否能迁移成功的。所以我一开始我的基本思路是先在qnap上建立好docker环境,然后把备份的文件逐一替换。
docker的建立
qnap上管理docker的是一个叫Container Station的软件。
首先要找到seafile-pro的镜像。这是官方的REFERENCE
If you are deploying Seafile Pro with Docker, type docker login docker.seadrive.org, then input username seafile, password zjkmid6rQibdZ=uJMuWS.
然后用命令拉取镜像:
docker pull http:// docker.seadrive.org/sea fileltd/seafile-pro:latest
这是官方的一个私有源在qnap上我不太会设置。没办法,只能用命令行了(是的,qnap上可以使用命令行来获取镜像)。 此处省略若干字... !
提取成功后大概是这样的。
docker 初始设置
其他没什么,主要注意目录的挂载: 把docker上/shared
目录挂载到本地 。
shared目录下总共有4个目录,docker启动后,可以在本地看到:
db logs seafile sqlbackup
数据库恢复
这步需要在docker的terminal中来执行。过程也很简单,就是按照官方的恢复方式来即可:
mysql -u[username] -p[password] ccnet-db < ccnet-db.sql.2013-10-19-16-00-05
mysql -u[username] -p[password] seafile-db < seafile-db.sql.2013-10-19-16-00-20
mysql -u[username] -p[password] seahub-db < seahub-db.sql.2013-10-19-16-01-05
这里需要注意的是官方docker数据库需要用root来恢复,密码为空。所以实际的命令是:
mysql -uroot ccnet-db < ccnet-db.sql.2013-10-19-16-00-05
数据恢复
这里没有什么要注意。文件拷贝,替换本地目录中生成的seafile-data
。
最后,访问新的链接看一下效果,数据都在(头像和壁纸没了):
参考:seafile备份与恢复