本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

基于SavageSoftware/portainer-backup的Fork版本,包含一些小bug修复和依赖更新。
docker-compose文件services: portainer-backup: image: dockurr/portainer-backup container_name: portainer-backup command: schedule environment: TZ: "America/New_York" PORTAINER_BACKUP_URL: "[***]" PORTAINER_BACKUP_TOKEN: "PORTAINER_ACCESS_TOKEN" PORTAINER_BACKUP_PASSWORD: "" PORTAINER_BACKUP_OVERWRITE: 1 PORTAINER_BACKUP_SCHEDULE: "0 0 0 * * *" PORTAINER_BACKUP_STACKS: 1 PORTAINER_BACKUP_DRYRUN: 0 PORTAINER_BACKUP_CONCISE: 1 PORTAINER_BACKUP_DIRECTORY: "/backup" PORTAINER_BACKUP_FILENAME: "portainer-backup.tar.gz" volumes: - ./backup:/backup restart: always
docker run -it --rm \ --name portainer-backup \ --volume "${PWD:-.}/backup:/backup" \ --env PORTAINER_BACKUP_URL="[***]" \ --env PORTAINER_BACKUP_TOKEN="YOUR_ACCESS_TOKEN" \ dockurr/portainer-backup \ backup
此工具需要通过单个命令执行内置操作之一。
| 命令 | 描述 |
|---|---|
backup | 备份Portainer数据归档文件 |
schedule | 运行定时Portainer备份 |
stacks | 备份Portainer stacks配置 |
test | 测试备份(不保存文件) |
info | 获取Portainer服务器信息 |
backup操作将对指定服务器执行一次Portainer数据备份。备份文件为TAR.GZ归档,可选择使用密码保护(--password)。操作完成后进程立即终止。
以下Docker命令将执行Portainer数据备份:
docker run -it --rm \ --name portainer-backup \ --volume ${PWD:-.}/backup:/backup \ --env TZ="America/New_York" \ --env PORTAINER_BACKUP_URL="[***]" \ --env PORTAINER_BACKUP_TOKEN="PORTAINER_ACCESS_TOKEN" \ --env PORTAINER_BACKUP_OVERWRITE=true \ --env PORTAINER_BACKUP_DIRECTORY=/backup \ dockurr/portainer-backup:latest \ backup
test操作将对指定服务器执行一次Portainer数据备份,但不会将数据保存到文件系统。test操作等同于使用--dryrun选项。操作完成后进程立即终止。
以下Docker命令将执行Portainer数据测试备份:
docker run -it --rm \ --name portainer-backup \ --volume ${PWD:-.}/backup:/backup \ --env TZ="America/New_York" \ --env PORTAINER_BACKUP_URL="[***]" \ --env PORTAINER_BACKUP_TOKEN="PORTAINER_ACCESS_TOKEN" \ --env PORTAINER_BACKUP_DIRECTORY=/backup \ dockurr/portainer-backup:latest \ test
schedule操作将对指定服务器执行持续的定时备份。--schedule选项或PORTAINER_BACKUP_SCHEDULE环境变量接受cron格式字符串定义备份计划。进程将持续运行,除非启动时验证步骤失败。
以下Docker命令将执行Portainer数据定时备份:
docker run -it --rm \ --name portainer-backup \ --volume ${PWD:-.}/backup:/backup \ --env TZ="America/New_York" \ --env PORTAINER_BACKUP_URL="[***]" \ --env PORTAINER_BACKUP_TOKEN="PORTAINER_ACCESS_TOKEN" \ --env PORTAINER_BACKUP_OVERWRITE=true \ --env PORTAINER_BACKUP_DIRECTORY=/backup \ --env PORTAINER_BACKUP_SCHEDULE="0 0 0 * * *" \ dockurr/portainer-backup:latest \ schedule
info操作将向指定Portainer服务器发送信息请求。操作完成后进程立即终止。
以下Docker命令将从Portainer获取信息:
docker run -it --rm \ --name portainer-backup \ --env PORTAINER_BACKUP_URL="[***]" \ dockurr/portainer-backup:latest \ info
stacks操作将对指定服务器执行一次Portainer stacks的docker-compose数据备份。此操作不备份Portainer数据库/数据文件,仅备份stacks配置。也可通过backup操作中的--stacks选项包含stacks备份。操作完成后进程立即终止。
以下Docker命令将执行Portainerstacks备份:
docker run -it --rm \ --name portainer-backup \ --volume ${PWD:-.}/backup:/backup \ --env TZ="America/New_York" \ --env PORTAINER_BACKUP_URL="[***]" \ --env PORTAINER_BACKUP_TOKEN="PORTAINER_ACCESS_TOKEN" \ --env PORTAINER_BACKUP_OVERWRITE=true \ --env PORTAINER_BACKUP_DIRECTORY=/backup \ dockurr/portainer-backup:latest \ stacks
生成的备份文件可用于Portainer内置的恢复功能。详情参见:[***]
Portainer-backup进程退出后将返回数值。
| 值 | 描述 |
|---|---|
| 0 | 工具成功执行命令 |
| 1 | 工具遇到错误并失败 |
Portainer-backup支持通过命令行参数和环境变量配置所有选项。
| 选项 | 环境变量 | 类型 | 描述 |
|---|---|---|---|
-t, --token | PORTAINER_BACKUP_TOKEN | string | Portainer访问令牌 |
-u, --url | PORTAINER_BACKUP_URL | string | Portainer基础URL |
-Z, --ignore-version | PORTAINER_BACKUP_IGNORE_VERSION | true|false | 绕过Portainer版本检查/强制验证 |
-d, --directory, --dir | PORTAINER_BACKUP_DIRECTORY | string | 备份目录/路径 |
-f, --filename | PORTAINER_BACKUP_FILENAME | string | 备份文件名 |
-p, --password, --pw | PORTAINER_BACKUP_PASSWORD | string | 备份归档密码 |
-M, --mkdir, --make-directory | PORTAINER_BACKUP_MKDIR | true|false | 创建备份目录路径 |
-o, --overwrite | PORTAINER_BACKUP_OVERWRITE | true|false | 覆盖现有文件 |
-s, --schedule, --sch | PORTAINER_BACKUP_SCHEDULE | string | 定时备份的cron表达式 |
-i, --include-stacks, --stacks | PORTAINER_BACKUP_STACKS | true|false | 在备份中包含stack文件 |
-q, --quiet | PORTAINER_BACKUP_QUIET | true|false | 不显示任何控制台输出 |
-D, --dryrun | PORTAINER_BACKUP_DRYRUN | true|false | 执行命令任务但不持久化任何数据 |
-X, --debug | PORTAINER_BACKUP_DEBUG | true|false | 打印遇到的任何错误的堆栈跟踪 |
-J, --json | PORTAINER_BACKUP_JSON | true|false | 打印格式化/结构化JSON数据 |
-c, --concise | PORTAINER_BACKUP_CONCISE | true|false | 打印简洁/有限的输出 |
-v, --version | (N/A) | 显示工具版本号 | |
-h, --help | (N/A) | 显示帮助信息 |
注意: 如果同时配置了环境变量和命令行选项,命令行选项将优先生效。
Portainer-backup通过--schedule选项或PORTAINER_BACKUP_SCHEDULE环境变量接受cron格式字符串表达式定义备份计划。
注意: 支持的cron语法详情参见:[***]
语法格式: ┌──────────────────────── 秒(可选) │ ┌──────────────────── 分 │ │ ┌──────────────── 时 │ │ │ ┌──────────── 日 │ │ │ │ ┌──────── 月 │ │ │ │ │ ┌──── 周 │ │ │ │ │ │ │ │ │ │ │ │ * * * * * * 示例: 0 0 0 * * * 每天午夜12:00 0 0 5 1 * * 每月1日凌晨5:00 0 */15 0 * * * 每15分钟
| 字段 | 允许值 |
|---|---|
| 秒 | 0-59 |
| 分 | 0-59 |
| 时 | 0-23 |
| 日 | 1-31 |
| 月 | 1-12(或名称) |
| 周 | 0-7(或名称,0或7为周日) |
| 表达式 | 描述 |
|---|---|
0 0 4,8,12 * * * | 每天4点、8点、12点执行 |
| 表达式 | 描述 |
|---|---|
0 0 1-5 * * * | 每天1点到5点每小时执行 |
步长值可与范围结合使用,在范围后添加/和数字。例如:1-10/2等同于2,4,6,8,10。也可在星号后使用步长,如每2分钟执行可使用*/2。
| 表达式 | 描述 |
|---|---|
0 0 */2 * * * | 每2小时执行 |
月和周字段也可使用名称或缩写名称。例如:
| 表达式 | 描述 |
|---|---|
* * * * January,September Sunday | 1月和9月的周日执行 |
* * * * Jan,Sep Sun | 1月和9月的周日执行(缩写) |
Portainer-backup支持通过替换语法为目录和文件名选项动态分配日期时间元素。
| 命令行选项 | 环境变量 |
|---|---|
-d, --directory, --dir | PORTAINER_BACKUP_DIRECTORY |
-f, --filename | PORTAINER_BACKUP_FILENAME |
所有替换预设和/或令牌使用双花括号包裹:{{ PRESET|TOKEN }}
示例:
--filename "portainer-backup-{{DATE}}.tar.gz"
Portainer-backup使用Luxon库解析日期时间语法。更多信息参见:[***]
所有日期时间均使用运行portainer-backup工具的系统本地时间渲染。也可在任何令牌前添加UTC_前缀以使用UTC时间。
文件名还会经过sanitize函数处理,去除不支持的字符::替换为_,/替换为-。
portainer-backup定义了以下替换预设:
| 令牌 | 格式 | 示例(美国时间) |
|---|---|---|
DATETIME | yyyy-MM-dd'T'HHmmss | 2022-03-05T231356 |
TIMESTAMP | yyyyMMdd'T'HHmmss.SSSZZZ | 20220305T184827.445-0500 |
DATE | yyyy-MM-dd | 2022-03-05 |
TIME | HHmmss | 231356 |
ISO8601 | yyyy-MM-dd'T'hh_mm_ss.SSSZZ | 2017-04-20T11_32_00.000-04_00 |
ISO | yyyy-MM-dd'T'hh_mm_ss.SSSZZ | 2017-04-20T11_32_00.000-04_00 |
ISO_BASIC | yyyyMMdd'T'hhmmss.SSSZZZ | 20220305T191048.871-05_00 |
ISO_NO_OFFSET | yyyy-MM-dd'T'hh_mm_ss.SSS | 2022-03-05T19_12_43.296 |
ISO_DATE | yyyy-MM-dd | 2017-04-20 |
ISO_WEEKDATE | yyyy-'W'kk-c | 2017-W17-7 |
ISO_TIME | hh_mm_ss.SSSZZZ | 11_32_00.000-04_00 |
RFC2822 | ccc, dd LLL yyyy HH_mm_ss ZZZ | Thu, 20 Apr 2017 11_32_00 -0400 |
HTTP | ccc, dd LLL yyyy HH_mm_ss ZZZZ | Thu, 20 Apr 2017 03_32_00 GMT |
MILLIS | x | 1492702320000 |
SECONDS | X | 1492702320.000 |
UNIX | X | 1492702320.000 |
EPOCH | X | 1492702320.000 |
以下替换预设由Luxon库提供并被portainer-backup支持: (更多信息参见Luxon文档:[***]
(以下预设使用1983年10月14日13:30:23
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429