折腾本腾
Appdata Backup - Docker/U盘/虚拟机配置备份插件 | JackieWu
00 分钟
2024-1-17
2024-3-2
type
status
date
slug
summary
tags
category
icon
password
URL
notion image
在博主过往处理过的问题案例中,不少用户在 unRAID 上使用 Docker 的过程中往往会遇到某些问题导致 Docker 不能正常运行,这时候如果配置文件没有损坏或者丢失,那么我们只需要重新创建 Docker 即可,因为配置文件还在的情况下,我们不需要再费时间去重新配置 Docker 应用中的各项参数。
之前有位朋友在转移数据的过程中出现了硬盘问题,导致硬盘里面的数据全都损坏了,不过还好先前我帮他通过插件备份了 Docker 参数,也算是不幸中的万幸。
但如果说配置文件损坏了或者丢失,那么造成的损失可能就比较大了。因此,本文将给读者们介绍如何在 unRAID 上通过插件去备份 appdata 文件夹中的各项 Docker 配置文件,以此确保即使出现了意外数据也不会丢失。

1、安装 Appdata Backup 插件

💡
特别说明 Appdata Backup 只支持 ≥ 6.12 的系统版本,如果你的系统版本 < 6.12 ,那么插件将会是另一个版本,名称叫做 Appdata Backup v2.5 (其设置方法也会有一些区别,但逻辑上是差不多的,会在文章末尾进行补充)。
Appdata Backup 是一款专门备份 Docker 配置文件的插件,用户可以根据需要去备份所有或者个别 Docker 的配置文件,并且此插件还支持备份系统 U 盘和虚拟机元数据文件。
This plugin allows you to back up and restore all your appdata content! It takes care of everything (stop/start docker containers) including some extras (update docker containers).
notion image
6.12 版本
如果你无法通过应用商店安装插件,可以参考这里的方式进行离线安装。
复制以下命令到 unRAID 命令行窗口中运行:
下载完成之后,请手动到“插件 - 安装插件”中进行本地安装:
定位到 config - plugins 目录下

2、创建共享文件夹存放备份文件

为了演示,这里创建一个叫做 docker-backup 的共享文件夹。
notion image
notion image
notion image
notion image

3、备份规则参数详解

进入 Appdata Backup 插件设置:
notion image
notion image
(1)Main Settings
  1. Backup type - 备份模式(建议使用第二种模)
    1. Stop all containers, backup, start all :停止所有 Docker 之后进行备份,备份完成后打开所有 Docker;
    2. Stop, backup, start for each container : 单独停止某个 Docker 然后进行备份,备份完成后再打开此 Docker,然后再轮到下一个 Docker 进行停止 → 备份 → 开启的步骤。
  1. Delete backups if older than x days - 如果备份的时间超过 x 天,则删除备份
  1. Keep at least this many backups - 保存多少份配置文件
  1. Appdata source(s) - Docker 配置文件源目录
    1. Internal volume
      External volume
      Internal volume
      External volume
      插件一定会备份前者,但后者是根据需要进行备份。
  1. Backup destination - 备份文件存储目录
    1. Use Compression - 是否启用备份文件压缩(建议设置为 Yes, multicore
      1. Verify Backup - 备份验证(建议设置为 Yes
        1. Ignore errors during backup - 无视备份过程中的错误(建议设置为 No
          1. Backup the flash drive - 是否备份 U 盘
          1. Backup VM meta - 是否备份虚拟机的元数据文件.xml
          (2)Notifications, scheduling and retention
          1. Notification Settings - 通知设置
            1. Scheduled Backup Frequency - 定时任务
              1. 0 5 */3 * *
              2. 分钟(0-59):表示每小时的哪一分钟执行任务。
              3. 小时(0-23):表示每天的哪个小时执行任务。
              4. 日期(1-31):表示每月的哪一天执行任务。
              5. 月份(1-12):表示每年的哪个月执行任务。
              6. 星期几(0-7,其中0和7都表示星期日):表示每周的哪一天执行任务。
                • 星号(*):表示该字段可以匹配该字段的所有可能的值。
                • 逗号(,):用于分隔字段中的多个值,表示同时匹配多个值。
                • 连接符(-):用于指定字段的范围,表示匹配范围内的所有值。
                • 正斜杠(/):用于指定字段的步长值,表示按照指定的步长跳过部分值。
                • 0 0 * * *:每天的午夜(0点)执行任务。
                • 0 12 * * 1-5:每周一到周五的中午12点执行任务。
                • 0 */2 * * *:每两个小时执行一次任务。
                • /5 * * * *:每五分钟执行一次任务。
            (3)Docker specific settings
            Update containers after backup - 是否在备份完成后更新 Docker 镜像(建议设置为 No
            表示如果 Docker 镜像有更新,那么在备份结束之后需不需要对 Docker 进行更新,建议设置为 No ,有更新时手动去更新就行。
            (4)Per container settings
            此板块可以针对具体某个 Docker 应用的备份策略进行修改。
            1. Skip - 是否跳过此 Docker 的备份
            1. Save external volumes - 是否备份除 appdata 文件夹之外的文件夹
                • External volume 指不属于 /mnt/user/appdata 内的文件夹,那么在这里 /mnt/user 不位于 appdata 文件夹内,所以属于 External volume ;
                • Internal volume 指的是位于 /mnt/user/appdata 内的配置文件夹,这里指的是 /mnt/cache/appdata/alist ,也就是 alist 配置文件夹的保存目录。
            1. 这三个选项前面都解释过了,这里不在解释,一般保持默认设置即可。
            1. Excluded folders/files - 排除不需要备份文件夹
              1. Dont stop container - 是否在不停止 Docker 的情况下进行备份
                (5)Start order
                • 如果在前面的 Main Settings 选择 Backup type 模式为 Stop all containers, backup, start all ,那么将会按照这里的列表顺序去逐一对 Docker 进行停止 → 备份 → 开启的备份操作。
                  • “Stop all containers, backup, start all“ 模式下的顺序
                • 如果在前面的 Main Settings 选择 Backup type 模式为 Stop all containers, backup, start all ,那么
                  • 开始备份时,停止 Docker 进行备份的顺序是反过来,从下至上逐一停止 Docker 然后执行备份;
                  • 完成备份后,启动 Docker 的顺序是按照列表从上至下逐一开启 Docker 。
                  • "Stop all containers, backup, start all” 模式下的顺序
                (6)Custom scripts
                此配置的作用是在备份过程中的某个节点执行相应的自定义脚本,有四个节点可以选择脚本进行执行:
                • Pre-run script - 在备份机制执行前
                • Pre-backup script - 备份开始前(在 Docker 停止后)
                • Post-backup script - 备份结束后(在 Docker 恢复启动前)
                • Post-run script - 在备份机制完成后
                (7)Some extra options
                除了上面提到的相关、涉及到备份的文件夹,你还可以手动在这里的列表中指定还需要备份哪些额外的文件夹,这些额外的文件夹将会被打包压缩到叫做 extra_files.tar.gz 的压缩包中。
                (8)保存配置
                当你完成所有的配置后,点击 SAVE 保存配置:
                如果你需要立即执行一遍备份,点击 MANUAL BACKUP
                (9)备份好的文件长什么样
                每一次执行任务,插件都会创建相应的文件夹,文件夹的命名方式是以下划线 _ 分割相应的信息,例如:
                • ab :为此插件 Appdata Backup 的名称缩写。
                • 20230730 :年月日
                • 050005 :时分秒
                文件夹内主要分为这四类备份的文件:
                • .zst 文件:是对应 Docker 的配置文件夹压缩包,如果在 Main Settings - Use Compression 中选择了 Yes, multicore ,那么将会采用 zstdmt 压缩方法备份文件,因此文件名后缀为 .zst ;如果使用的是另一个压缩模式,则后缀名为 .gzip
                • backup.log :备份日志文件,用于检查和 Debug 。
                (10)配置参考(看不懂的读者可以按照这里的参数去配置)
                这里提供配置好的参数供读者参考,如果读者一开始还不太会配置,可以按照这里的配置顺序去设置,说明如下:
                • 此配置每 3 天进行一次备份,备份时间在凌晨 5 点整进行。
                  • Cron 表达式
                • 使用 zstdmt 压缩方法进行压缩,可以实现更高的压缩比,节省存储空间。
                • appdata 文件夹的路径位于 /mnt/user
                • 将备份存储至 /mnt/user/docker-backup 文件夹内。
                • 除了备份 Docker 配置文件,还会同时备份虚拟机元数据文件( .xml )和系统 U 盘内的文件。
                • 设置完成后记得保存。

                4、通过备份恢复配置

                步骤一:选择备份源
                1. 选择 Restore 标签页。
                1. 确认存放备份文件的文件夹。
                1. 点击下一步 NEXT
                步骤二:选择需要恢复的备份版本
                然后点击 NEXT 进入下一步
                步骤三:选择需要恢复的项
                1. Restore backup config - 恢复本插件的配置(一般不需要勾选)
                1. Restore extra files - 恢复额外文件夹
                  1. Some extra options
                1. Restore VM meta - 恢复虚拟机元数据
                  1. 这里的虚拟机元数据指的是 unRAID 虚拟机的配置模板。
                1. Restore templates - 恢复 Docker CA 模板
                  1. 不了解什么是 Docker CA 模板的,可以看博主的
                1. Restore containers - 恢复 Docker 配置文件

                  5、补充:Appdata Backup v2.5 的设置方法

                  如果你的系统版本小于 6.12 ,那么你需要安装的是 Appdata Backup v2.5 插件:
                  notion image
                  如果你无法通过应用商店安装插件,可以参考这里的方式进行离线安装。 复制以下命令到 unRAID 命令行窗口中运行: mkdir -p /boot/config/plugins/ca.backup2; wget -nc -P /boot/config/plugins/ca.backup2 https://gitee.com/jackiewuu/unraid/raw/master/plugins/ca.backup2/ca.backup2-2023.03.28c-x86_64-1.txz; wget -nc -P /boot/config/plugins/ https://gitee.com/jackiewuu/unraid/raw/master/plugins/ca.backup2/ca.backup2.plg 下载完成之后,请手动到“插件 - 安装插件”中进行本地安装: 定位到 config - plugins 目录下
                  配置界面如下:
                  notion image
                  插件设置方法与 6.12 版本下的插件其实大同小异,参考这里的相关设置说明进行设置即可。
                  备份恢复方式同理,这里就不赘述了。
                  1. Appdata Share (Source) - 文件源
                  1. Destination Share - 备份存储文件夹
                  1. Excluded Folders - 排除文件夹
                  1. Use Compression - 是否启用备份文件压缩
                    1. Verify Backups - 校验备份
                      1. lgnore errors during backup - 无视备份过程中的错误
                        1. Create separate archives (one per folder) - 单独创建备份文件夹
                          1. USB Backup Destination - USB 备份存储目录
                          1. libvirt.img Destination - 虚拟机配置 libvirt.img 备份目的目录
                          1. Notification settings - 通知设置
                            1. Path To Custom xxx Script - 脚本
                            1. Update Applications On Restart - 重启容器时是否更新 Docker 镜像
                            1. Scheduled Backup Frequency - 备份任务时间频率设置
                            • Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
                            Relate Posts
                            Comments

                            评论
                            Loading...