
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
使用提供的示例配置设置备份计划。Compose文件包含backup和prune服务,可独立调度。如果希望手动运行修剪任务,可移除prune服务。
根据需要调整提供的docker-compose.yml,然后运行:
docker-compose up -d
根据需要调整提供的docker-swarm.yml,然后作为堆栈部署:
docker stack deploy -f docker-swarm.yml backup
若要在已通过Docker Compose运行容器的主机上恢复文件,可使用exec:
bash# 查找当前主机的最新快照(记录ID) docker-compose exec app restic snapshots -H <HOSTNAME> # 在主机上恢复指定文件 docker-compose exec app restic restore --include /path/to/file <ID>
使用Swarm模式时,需手动SSH到主机并运行docker exec -it ..。
可使用相同配置运行任何带指定参数的restic命令:
docker-compose run --rm app <RESTIC参数>
例如:
docker-compose run --rm app snapshots
注意:BACKUP_CRON和PRUNE_CRON互斥。
BACKUP_CRON - 备份运行的 cron 表达式,例如0 30 3 * * *表示每天凌晨3:30运行。详情见https://godoc.org/github.com/robfig/cron%E3%80%82PRUNE_CRON - 修剪任务运行的 cron 表达式,例如0 0 4 * * *表示每天凌晨4:00运行。详情见https://godoc.org/github.com/robfig/cron%E3%80%82RUN_ON_STARTUP - 设置为"true"时,除 cron 表达式外,启动时立即执行备份或修剪任务,默认禁用。RESTIC_REPOSITORY - restic仓库位置,支持restic的任何目标,默认/mnt/restic。RESTIC_BACKUP_SOURCES - 备份源目录,需作为卷挂载到容器(见示例配置),默认/data。RESTIC_PASSWORD - restic仓库密码,若仓库未初始化则用于初始化。RESTIC_BACKUP_ARGS - 若指定,restic backup将使用这些参数,例如标签、排除文件或详细日志:--tag docker-volumes --exclude-file='exclude.txt' --verbose。详情见restic备份文档。RESTIC_BACKUP_TAGS - 已弃用,快照标签(逗号分隔),即将移除,请使用RESTIC_BACKUP_ARGS定义标签。RESTIC_FORGET_ARGS - 若指定,每次备份后运行restic forget时使用这些参数,例如--prune --keep-last 14 --keep-daily 1。详情见restic forget文档。RESTIC_PRUNE_ARGS - 若指定,运行restic prune时使用这些参数,例如B2并发连接设置和详细日志:-o b2.connections=10 --verbose。B2_ACCOUNT_ID和B2_ACCOUNT_KEY,详情见restic官方文档的支持环境变量。)TZ - 可选,设置时区以确保 cron 执行时间正确。rclone仓库类型若使用rclone仓库类型,需准备rclone.conf文件并挂载到容器的/root/.config/rclone/rclone.conf路径。
可在实际备份开始前执行命令(如数据库转储、停止容器避免数据不一致)。若要在主机上执行docker命令,需将Docker socket挂载到容器:
- /var/run/docker.sock:/var/run/docker.sock
通过指定以下环境变量添加一个或多个命令:
PRE_COMMANDS: |- docker exec nextcloud-postgres pg_dumpall -U nextcloud -f /data/nextcloud.sql docker exec other-postgres pg_dumpall -U other -f /data/other.sql docker stop my_container
PRE_COMMANDS中的命令将逐个执行。
可在备份完成后执行命令(如重启临时停止的容器、发送邮件)。与备份前命令类似,若要执行docker命令需挂载Docker socket。
通过指定以下环境变量添加命令:
POST_COMMANDS_SUCCESS: |- /my/scripts/mail-success.sh POST_COMMANDS_FAILURE: |- /my/scripts/mail-failure.sh POST_COMMANDS_EXIT: |- docker start my_container
命令将逐个执行:
POST_COMMANDS_SUCCESS:备份成功后执行POST_COMMANDS_FAILURE:备份失败后执行POST_COMMANDS_EXIT:无论成功或失败均执行Resticker镜像除curl外无其他通知工具,需连接第二个容器实现。例如使用https://github.com/djmaze/apprise-microservice%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E9%80%9A%E7%9F%A5%EF%BC%9A
yamlservices: app: image: mazzolino/restic:1.1 environment: # ... POST_COMMANDS_FAILURE: |- curl -X POST --data "{\"title\": \"Backup failed\", \"body\": \"\"}" http://notify:5000 networks: - notification notify: image: mazzolino/apprise-microservice:0.1 environment: NOTIFICATION_URLS: mailto://... networks: - notification networks: notification:
使用提供的Makefile构建自定义镜像:
make image IMAGE=myuser/restic
也可推送镜像或构建不同架构:
make image IMAGE=myuser/restic ARCH=arm
更多目标见Makefile。
以https://github.com/Lobaro/restic-backup-docker%E4%B8%BA%E8%B5%B7%E7%82%B9%EF%BC%8C%E6%84%9F%E8%B0%A2%EF%BC%81
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务