type
status
date
slug
summary
tags
category
icon
password
URL
在博主过往处理过的问题案例中,不少用户在 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).
6.12 版本
如果你无法通过应用商店安装插件,可以参考这里的方式进行离线安装。
复制以下命令到 unRAID 命令行窗口中运行:
下载完成之后,请手动到“插件 - 安装插件”中进行本地安装:
定位到 config - plugins 目录下
2、创建共享文件夹存放备份文件
为了演示,这里创建一个叫做
docker-backup
的共享文件夹。notion image
notion image
3、备份规则参数详解
进入 Appdata Backup 插件设置:
notion image
(1)Main Settings
- Backup type - 备份模式(建议使用第二种模)
- Stop all containers, backup, start all :停止所有 Docker 之后进行备份,备份完成后打开所有 Docker;
- Stop, backup, start for each container : 单独停止某个 Docker 然后进行备份,备份完成后再打开此 Docker,然后再轮到下一个 Docker 进行停止 → 备份 → 开启的步骤。
- Delete backups if older than x days - 如果备份的时间超过 x 天,则删除备份
- Keep at least this many backups - 保存多少份配置文件
- Appdata source(s) - Docker 配置文件源目录
Internal volume
External volume
Internal volume
External volume
插件一定会备份前者,但后者是根据需要进行备份。
- Backup destination - 备份文件存储目录
- Use Compression - 是否启用备份文件压缩(建议设置为
Yes, multicore
)
- Verify Backup - 备份验证(建议设置为
Yes
)
- Ignore errors during backup - 无视备份过程中的错误(建议设置为
No
)
- Backup the flash drive - 是否备份 U 盘
- Backup VM meta - 是否备份虚拟机的元数据文件(
.xml
)
(2)Notifications, scheduling and retention
- Notification Settings - 通知设置
- Scheduled Backup Frequency - 定时任务
- 分钟(0-59):表示每小时的哪一分钟执行任务。
- 小时(0-23):表示每天的哪个小时执行任务。
- 日期(1-31):表示每月的哪一天执行任务。
- 月份(1-12):表示每年的哪个月执行任务。
- 星期几(0-7,其中0和7都表示星期日):表示每周的哪一天执行任务。
- 星号(*):表示该字段可以匹配该字段的所有可能的值。
- 逗号(,):用于分隔字段中的多个值,表示同时匹配多个值。
- 连接符(-):用于指定字段的范围,表示匹配范围内的所有值。
- 正斜杠(/):用于指定字段的步长值,表示按照指定的步长跳过部分值。
0 0 * * *
:每天的午夜(0点)执行任务。0 12 * * 1-5
:每周一到周五的中午12点执行任务。0 */2 * * *
:每两个小时执行一次任务。/5 * * * *
:每五分钟执行一次任务。
0 5 */3 * *
(3)Docker specific settings
Update containers after backup - 是否在备份完成后更新 Docker 镜像(建议设置为
No
)表示如果 Docker 镜像有更新,那么在备份结束之后需不需要对 Docker 进行更新,建议设置为
No
,有更新时手动去更新就行。(4)Per container settings
此板块可以针对具体某个 Docker 应用的备份策略进行修改。
- Skip - 是否跳过此 Docker 的备份
- Save external volumes - 是否备份除 appdata 文件夹之外的文件夹
- External volume 指不属于
/mnt/user/appdata
内的文件夹,那么在这里/mnt/user
不位于appdata
文件夹内,所以属于 External volume ; - Internal volume 指的是位于
/mnt/user/appdata
内的配置文件夹,这里指的是/mnt/cache/appdata/alist
,也就是 alist 配置文件夹的保存目录。
- 这三个选项前面都解释过了,这里不在解释,一般保持默认设置即可。
- Excluded folders/files - 排除不需要备份文件夹
- 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 。
.xml
文件:Docker CA 模板文件。
不了解什么是 Docker CA 模板的,可以看博主的
(10)配置参考(看不懂的读者可以按照这里的参数去配置)
这里提供配置好的参数供读者参考,如果读者一开始还不太会配置,可以按照这里的配置顺序去设置,说明如下:
- 此配置每 3 天进行一次备份,备份时间在凌晨 5 点整进行。
Cron 表达式
- 使用 zstdmt 压缩方法进行压缩,可以实现更高的压缩比,节省存储空间。
appdata
文件夹的路径位于/mnt/user
。
- 将备份存储至
/mnt/user/docker-backup
文件夹内。
- 除了备份 Docker 配置文件,还会同时备份虚拟机元数据文件(
.xml
)和系统 U 盘内的文件。
- 设置完成后记得保存。
4、通过备份恢复配置
步骤一:选择备份源
- 选择
Restore
标签页。
- 确认存放备份文件的文件夹。
- 点击下一步
NEXT
。
步骤二:选择需要恢复的备份版本
然后点击
NEXT
进入下一步步骤三:选择需要恢复的项
- Restore backup config - 恢复本插件的配置(一般不需要勾选)
- Restore extra files - 恢复额外文件夹
Some extra options
- Restore VM meta - 恢复虚拟机元数据
这里的虚拟机元数据指的是 unRAID 虚拟机的配置模板。
- Restore templates - 恢复 Docker CA 模板
不了解什么是 Docker CA 模板的,可以看博主的
- Restore containers - 恢复 Docker 配置文件
5、补充:Appdata Backup v2.5 的设置方法
如果你的系统版本小于
6.12
,那么你需要安装的是 Appdata Backup v2.5 插件:如果你无法通过应用商店安装插件,可以参考这里的方式进行离线安装。 复制以下命令到 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 目录下
配置界面如下:
插件设置方法与 6.12 版本下的插件其实大同小异,参考这里的相关设置说明进行设置即可。
备份恢复方式同理,这里就不赘述了。
- Appdata Share (Source) - 文件源
- Destination Share - 备份存储文件夹
- Excluded Folders - 排除文件夹
- Use Compression - 是否启用备份文件压缩
- Verify Backups - 校验备份
- lgnore errors during backup - 无视备份过程中的错误
- Create separate archives (one per folder) - 单独创建备份文件夹
- USB Backup Destination - USB 备份存储目录
- libvirt.img Destination - 虚拟机配置
libvirt.img
备份目的目录
- Notification settings - 通知设置
- Path To Custom xxx Script - 脚本
- Update Applications On Restart - 重启容器时是否更新 Docker 镜像
- Scheduled Backup Frequency - 备份任务时间频率设置
- Author:JackieWu
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts
AVDC : Movie Data Capture DockerUnraid 云盘同步方案:“三叉戟”同步(Alist-CloudDrive2-CloudSync)unRAID 通用文件传输工具 —— Rsync 命令RustDesk 开源远程桌面服务部署新手教程:如何在 unRAID 上正确安装 Docker为什么unRAID下载/拷贝文件时CPU占用高:详解FUSE-SHFS、I/O问题和解决办法
Comments
- 作者:Wilson Zeng
- 链接:https://wilsonzeng.com/article/43ec8e25-c188-4bb6-aa40-9d0912f1d0c4
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。