type
status
slug
summary
tags
category
icon
password
new update day
Property
Oct 22, 2023 01:31 PM
created days
Last edited time
Oct 22, 2023 01:31 PM

Seafile Docker volume 跨服务器迁移

前言

最近发现一个服务器上同时跑 Seafile 与 bolo 太吃力、然后碰巧也在群里看到有群友推荐 Docker 面板 Portainer,于是就想着顺手也将 Seafile 做一个迁移,因为是跨服务器进行迁移,所以也是在经过了一番资料的查询之后才动的手。期间看到了一篇很好的文章。在这里将链接放出来。😄
Docker volume 跨服务器迁移,我也只是根据文章的步骤进行了一下手动实现,所以在这里记录下来,原理我也就不怎么讲了,可以直接戳上方链接进行学习。

具体实现流程

要对容器 volume 进行迁移,主要流程如下:
  • 打包现有 volume 内容为 tar 文件
  • 将 tar 文件传输至新服务器
  • 在新服务器中创建中间容器
  • 解压 tar 文件至 volume 对应目录
  • 清理中间容器等

1. 打包现有 volume 内容为 tar 文件包

将 tar 文件传输至新服务器

既可以通过 scp 命令,也可以使用 rsync 工具进行传输。

2. 在新服务器创建中间容器

使用 docker create 命令创造一个仅用于迁移的容器:

3. 解压 tar 文件至 volume

4. Seafile 的转移

Seafile 如果使用 Docker 方式启动的话,最重要的,也是唯二需要关注备份的也就是,MySQL 数据库数据以及 Seafile 文件储存。
如果你是使用的官方的 docker-compose.yaml 进行部署的话,那么直接使用下面的命令修改对应的容器名称位置及的就可实现 volume 数据的备份,如果你自行修改了,那么也请自行修改。

第一步:停止对应容器

第二步:备份数据库

第三步:备份 seafile 文件数据

第四步:传输 tar 包至新服务器

第五步:恢复数据

  1. 创建 MySQL 临时容器
  1. 恢复 MySQL 数据库
  1. 创建 seafile 临时容器
  1. 恢复 seafile 数据

第六步:docker-compose.yaml 中使用该 volume

如果你想在 docker-compose.yaml 中使用该 volume,那么就需要进行相应的配置,例如下面的修改后的文件。

6. 参考

Arch Linux 日常使用软件合集(收集与纪录)Arch Linux 安装软件时一键安装所有的可选依赖项