1、停止旧服务

docker stop nextcloud

docker rm nextcloud


2、运行新服务

进入web端进行初始化设置
检查是否有报错,并解决
image.png

3、部分数据迁移

将数据拷贝到新服务的 files 路径下
例如只导入 admin 用户的数据,则拷贝到admin的目录下面
/usr/local/src/other/nextcloud/data/admin/files



4、重启容器

docker restart nextcloud


5、重新加载数据目录

此时进入web客户端查看是没有数据的
需要重新加载数据目录

docker exec -u 33 nextcloud php occ files:scan --all

image.png

出现这样的提示表示成功了

迁移多个用户的数据同理

问题: 可能会出现文件无法删除的问题
解决: 进入NextCloud容器内部做修改

docker exec -it nextcloud bash

#赋权
chown -R www-data ./data


6、整体迁移

  • 旧机器内停止运行:
docker stop nextcloud
  • 整体打包:
cd /usr/local/src/other
tar -zcvf nextcloud.tar.gz nextcloud
  • 将压缩包传到新机器上:
scp nextcloud.tar.gz root@serverip:/usr/local/src/other
  • 新机器内安装好docker和docker-compose后解压压缩包
cd /usr/local/src/other

tar -xzvf nextcloud.tar.gz
  • 进入到docker-compose目录直接up即可完成迁移:
cd nextcloud

docker-compose up -d