
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
该Docker镜像提供备份服务,用于备份Docker卷中的PostgreSQL或MySQL数据库,可添加到包含PSQL或MySQL实例的Docker栈中实现周期性备份。同时支持备份挂载Docker卷中的可选文件,所有备份文件组织在备份目录中,并可选择性传输到备份空间。该服务设计用于备份单个数据库,如需备份整个PSQL或MySQL服务器,应使用pg_dumpall命令替代pg_dump(详见脚本backup.sh)。
imixs/backup镜像基于https://hub.docker.com/_/postgres/%E6%9E%84%E5%BB%BA%EF%BC%8C%E5%B9%B6%E6%B7%BB%E5%8A%A0%E4%BA%86mariadb-client%E6%94%AF%E6%8C%81%E3%80%82%E5%90%AF%E5%8A%A8%E5%AE%B9%E5%99%A8%E6%97%B6%E9%9C%80%E8%AE%BE%E7%BD%AE%E4%BB%A5%E4%B8%8B%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%9A
所有本地备份文件位于:
/root/backups/
备份空间中的文件路径:
/$BACKUP_ROOT_DIR/$BACKUP_SERVICE_NAME/
每个备份文件名称前缀包含时间戳,格式如下:
2018-01-07_03:00_dump.tar.gz
基于环境变量SETUP_CRON提供的Cron设置,backup_init脚本会启动Cron任务以调度backup.sh脚本。
示例:
bash# 每天凌晨3点执行 0 3 * * *
详情参见Cron使用说明。
所有备份脚本位于根目录(/root/):
backup_init.sh - 通过Cron初始化备份服务backup.sh - 备份执行脚本restore.sh - 恢复脚本backup_get.sh - 从远程备份空间获取文件可手动调用脚本:
bash$ docker exec -it 2f4b2feaa412 /root/backup.sh
备份脚本自动保留指定数量的本地备份文件,默认保留5个。可通过环境变量BACKUP_LOCAL_ROLLING修改该数量。
若设置了可选环境变量BACKUP_SPACE_HOST,服务会通过SFTP/SCP自动将备份文件推送到备份空间。备份空间中的目录结构为:
/$BACKUP_ROOT_DIR/$BACKUP_SERVICE_NAME/....
可选环境变量BACKUP_SERVICE_NAME用于命名备份空间上的目录,若未设置,则使用Docker容器ID。BACKUP_ROOT_DIR用于指定备份空间的根目录,未设置时默认使用/imixs-cloud。
创建SSH密钥
为通过SFTP/SCP传输文件,需在备份空间上配置RFC4716格式的公钥。备份服务通过Docker Secret获取私钥文件(仅在Docker Swarm环境中可用)。
将私钥文件/root/.ssh/backupspace_rsa创建为Docker Secret:
bashdocker secret create backupspace_key /root/.ssh/backupspace_rsa
在Docker栈定义中引用该Secret:
yamlversion: '3.1' services: backup: image: imixs/backup:latest environment: ... BACKUP_SPACE_KEY_FILE: "/run/secrets/backupspace_key" secrets: - backupspace_key ... secrets: backupspace_key: external: true
若设置以下环境变量,备份脚本会发送成功执行邮件通知:
BACKUP_EMAIL_SMARTHOSTBACKUP_EMAIL_FROMBACKUP_EMAIL_TO需提供智能主机服务名称(或IP)、发件人和收件人地址。详见https://github.com/imixs/imixs-docker/blob/master/exim4/README.md%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E%E3%80%82
imixs/backup服务通常作为Docker服务栈的一部分运行,需与PSQL/MySQL数据库服务及挂载卷在同一栈中,通过内部网络连接。
以下示例配置用于备份包含MySQL数据库和wp-content卷的WordPress服务:
yaml... backup: image: imixs/backup:1.2.1 environment: SETUP_CRON: "0 4 * * *" BACKUP_SERVICE_NAME: "my-service" BACKUP_DB_USER: "wordpress_dms" BACKUP_DB_PASSWORD: "xxxxxxxxxxx" BACKUP_DB_HOST: "db" BACKUP_DB_TYPE: "MYSQL" BACKUP_DB: "wordpress" BACKUP_VOLUME: "/var/www/html/wp-content" BACKUP_LOCAL_ROLLING: "5" volumes: - wp-content:/var/www/html/wp-content networks: - backend ...
如需启用远程备份空间,添加以下环境变量:
yaml... BACKUP_SERVICE_NAME: "my-app" BACKUP_SPACE_HOST: "my-backup.org" BACKUP_SPACE_USER: "yyyy" BACKUP_SPACE_KEY_FILE: "/run/secrets/backupspace_key" BACKUP_ROOT_DIR: "/imixs-cloud" ...
如需备份挂载卷中的文件目录:
yaml... BACKUP_VOLUME: "/home/imixs" volumes: - appdata:/home/imixs ...
添加以下环境变量启用备份成功邮件:
yaml... BACKUP_EMAIL_SMARTHOST: "smarthost" BACKUP_EMAIL_FROM: "backupagent@yourcompany.com" BACKUP_EMAIL_TO: "sysadmin@yourcompany.com" ...
可通过以下方式手动触发备份:
bash$ docker exec -it 82526abbabfe /root/backup.sh # 替换容器ID为实际备份服务ID
bash$ docker exec -it 82526abbabfe bash # 替换容器ID root@82526abbabfe:/# /root/backup.sh
bashls -la /root/backups
备份服务提供恢复脚本,可通过以下方式执行(需替换容器ID):
bashdocker exec -it 82526abbabfe [SCRIPT]
或进入容器后直接执行:
bashdocker exec -it 82526abbabfe bash
本地备份文件位于/root/backups/,文件名包含ISO格式时间戳。
bashls -la /root/backups
bash/root/restore.sh
指定备份文件的时间戳前缀:
bash/root/restore.sh 2018-01-05_03:00
若本地无备份文件,可先从备份空间拉取:
bashecho ls -la /$BACKUP_ROOT_DIR/$BACKUP_SERVICE_NAME | sftp $BACKUP_SPACE_USER@$BACKUP_SPACE_HOST
bash/root/backup_get.sh /$BACKUP_ROOT_DIR/$BACKUP_SERVICE_NAME/[BACKUPFILE] # 替换[BACKUPFILE]为实际文件名
文件将保存到/root/backups/,之后可按本地恢复步骤操作。
源码托管于https://github.com/imixs/imixs-docker%EF%BC%8C%E9%97%AE%E9%A2%98%E5%8F%8D%E9%A6%88%E8%AF%B7%E6%8F%90%E4%BA%A4%E8%87%B3https://github.com/imixs/imixs-docker/issues%E3%80%82
bashdocker build --tag=imixs/backup .
bashdocker run --name="backup" -it --rm \ -e SETUP_CRON="*/1 * * * *" \ -e BACKUP_DB_PASSWORD="xxxxxxxxxxx" \ -e BACKUP_DB_HOST="db" \ -e BACKUP_DB_TYPE="POSTGRES" \ -e BACKUP_DB="wordpress" \ imixs/backup
上述命令将每分钟触发一次备份。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务