DSM7之间迁移Docker套件

一、前言

提供一种在Synology DSM7 主机间迁移Docker套件的思路。

二、测试环境

源主机:DS3622xs+(DSM 7.1.1-42962 Update 4)
目标主机:DVA1622(DSM 7.1.1-42962 Update 6)

tips:两台主机需开启ssh和rsync功能(可在控制面板中操作)

三、操作步骤

tips:操作前请务必做好数据备份,以免数据丢失

A. 先在源主机进行操作

  1. 在套件中心停用Docker套件。
  2. 登陆ssh,执行wget https://gitee.com/kangzeru/dsm_-transferpackage/releases/download/v0.3-beta/transferpackage.sh下载脚本。
  3. 执行chmod +x transferpackage.sh获得执行权限。
  4. 执行sudo ./transferpackage.sh transfer Docker 1 [email protected]进行迁移操作。
    参数说明:
    脚本参数说明
    tips:迁移过程中会多次要求输入密码,请根据提示操作

迁移时会有如下类似的提示:

正在检测套件是否含有外部链接...
有外部链接:/var/packages/Docker/var/docker -> /volume2/@docker
套件Docker存在以上外部链接,请根据需要手动迁移这些文件(夹)并修改相应链接.
是否继续迁移套件Docker?[y/n]

请记住/volume2/@docker这个路径(volume后面的数字可能会有不同),输入y继续,@docker文件夹的操作会在后面进行。

  1. 执行sudo rsync -avWP --delete --syno-pseudo-root /volume2/@docker/ [email protected]:/volume1/@docker同步@docker文件夹。

说明: 前面的/volume2/@docker根据上一步的提示修改,后面的/volume1/@docker根据迁移目标主机的存储空间修改(示例:迁移到存储空间2就改为/volume2/@docker)。

tips:根据已创建的容器数量、大小,该步骤执行过程可能会需要大量时间,请耐心等待

B. 再在目标主机进行操作

  1. 登陆ssh,执行ln -snf /volume2/@docker /var/packages/Docker/var/docker更新链接,/volume2/@docker根据上面第4步修改。
    tips:如果源主机和目标主机的套件所在存储空间编号相同可以略过这一步
  2. 在控制面板创建共享文件夹docker,如果已经有了就略过这一步。

C. 然后回到源主机进行操作

  1. 执行sudo rsync -avWP --delete --syno-pseudo-root /volume2/docker/ [email protected]:/volume1/docker同步docker共享文件夹。
    说明: 前面的/volume2/docker和后面的/volume1/docker根据源主机和目标主机docker共享文件夹所在的存储空间修改。

D. 最后在目标主机进行操作

  1. 打开套件中心,在“已安装”里应该已经可以看到Docker套件,先不要启动(点启动一般也会提示启动失败)。
  2. 执行sudo vi /var/packages/Docker/INFO,将版本号改小。
    改版本
  3. 在套件中心更新Docker套件,如果没有更新选项,可以尝试执行sudo rm /var/packages/Docker/startFailed
  4. 如果操作一切正常,现在可以正常启动Docker套件了,容器等设置和源主机保持一样。
    tips:启动容器可能会报错,根据错误提示更新相关设置即可(一般主要是涉及到存储空间变化的问题)

猜你喜欢

转载自blog.csdn.net/kangzeru/article/details/132513252
今日推荐