【问题标题】:How to migrate Nextcloud Docker to a new machine如何将 Nextcloud Docker 迁移到新机器
【发布时间】:2022-01-16 10:40:27
【问题描述】:

我在使用 docker-compose 安装的服务器上安装了 Nextcloud。此安装使用 Nextcloud docker 映像和单独的 MySQL (8.0) docker 映像进行数据库访问。数据和配置文件放置在 docker-compose.yml 文件中指定的外部卷中。

我最近组装了一台新机器,它具有更多内存、更快的 CPU 和(最重要的是)更多的磁盘空间。我想将我当前的安装迁移到新机器上。

实际安装很简单:我可以简单地将我的 docker-compose.yml 文件复制到新机器上并运行它。问题在于我拥有的数据和(有些独特的)配置。我想把它们装到新机器上。

迁移 dockerized Nextcloud 安装的问题与迁移裸机或 VM 安装相关的问题不同。一方面,没有明确的方法将安装置于维护模式,您正在使用两个容器(实际上,这就像协调两台不同的机器)并且描述的迁移裸机安装的许多步骤将不起作用可靠地用于容器化安装(是的,可以进入容器运行一些命令。需要,但我尝试这样做导致了错误的迁移)。

在 Google 搜索中,我看到了大量关于如何将裸机 Nextcloud 安装从一台机器迁移到另一台机器以及如何将裸机(和虚拟机)安装迁移到 Docker 的文章和说明。这些过程非常复杂,涉及将安装置于维护模式并执行各种备份和恢复。不幸的是,虽然我看到一些人询问如何迁移 dockerized Nextcloud 安装,但没有关于如何执行此操作的明确说明(至少,没有一个实际工作!)。连 Nextcloud 网站都没有讨论这个!

有没有人成功地将 dockerized Nextcloud 安装从一台机器迁移到另一台机器?如果有,具体是怎么做的?

【问题讨论】:

  • 我不完全清楚,如果您的卷是绑定挂载或命名卷。如果您更改域
  • 如果你的 sql 数据库绑定挂载,nextcloud 服务器绑定挂载,你可以关闭服务器 1,复制服务器 2 上的文件,然后启动服务器 2。

标签: docker docker-compose nextcloud


【解决方案1】:

我自己能够做到这一点,虽然我正在将我的 nextcloud 安装从我的主家庭服务器迁移到一个较慢的 NAS-ish 盒子,我在搬家后一起打捞。

我遇到的主要问题是文件/目录所有权从一台机器转移到另一台机器。其次是确保在config.php中正确设置受信任的域

我确信最好使用 rsync 在机器之间复制/移动文件并确保您保持所有权不变,但我使用 scp 并手动更改了所有权。您的 nextcloud_data 容器需要 www-data 用户拥有您已映射到 /var/www/html 的目录的所有权,并且 nextcloud_db(我在这里使用 mariadb,YMMV)容器需要 systemd-coredump 用户拥有您已映射到的目录的所有权/var/lib/mysql(或任何您的数据库后端等效项)

然后只需确保您切换您的trusted_domains 和trusted_proxies,或者使用docker-compose env vars,或者直接编辑/var/www/html/config/config.php

【讨论】:

    【解决方案2】:

    基于 Raphael PICCOLO 的 cmets,我在我用于原始安装的卷中创建了一个 tarball,在我的目标机器上创建了一个新安装,然后在新机器上解压缩了 tarball。但是,如果您这样做,还必须执行另一个步骤:您必须更改 tarball 中所有文件的所有权,以便它们归新 Nextcloud 安装使用的用户 ID 所有。否则,新的 Nextcloud 应用程序将无法访问任何资源,甚至尝试登录都会在浏览器上获得 500 次失败。

    MySQL 容器还使用一个唯一 ID,因此所有与数据库相关的数据文件也必须进行所有权更改。

    获取正确的用户 ID 非常简单:当您首次安装新的 Nextcloud 和 MySQL 数据库时,使用您在原始 docker-compose.yml 文件中设置的相同卷。然后,在解压数据之前,请查看数据库文件夹和 Nextcloud 文件夹中文件的用户 ID。 TT然​​后,当您将 tarball 的内容放在新安装中时,使用 chown -R 进行所有权更改。

    请注意,我正在将我的安装从使用传统 root 用户运行 Docker 的 Centos 7 机器转移到以“非 root 用户”模式运行 Docker 的 Centos 8 机器。我不知道权限会如何影响其他机器或模式。

    不过,一旦权限设置正确,一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-15
      • 2014-12-08
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 2020-08-13
      相关资源
      最近更新 更多