
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
database-backup 镜像是一款用于定期备份数据库的工具,基于 https://hub.docker.com/r/prodrigestivill/docker-postgres-backup-local/ 的设计理念开发。支持 linux/amd64、linux/arm64、linux/arm/v7 等Docker架构,可备份多种数据库类型并灵活配置存储方式。
适用于需要定期备份数据库的各类环境,包括:
需挂载数据库数据目录至容器,配置环境变量,并挂载备份存储目录(本地或通过S3配置)。
shdocker run -v ${DB_BACKUP_OUT}:/data \ -e DB_BACKUP_KEEP_DAYS=7 \ -e DB_BACKUP_KEEP_WEEKS=4 \ -e DB_BACKUP_KEEP_MONTHS=6 \ -e "DB_USER=${DB_USER}" \ -e "DB_PASSWORD=${DB_PASSWORD}" \ -e DB_HOST=${DB_HOST} \ -e DB_PORT=${DB_PORT} \ psychomantys/database-backup
yamlversion: '3.9' services: app-db: image: mariadb environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: ${DB_NAME} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASSWORD} MYSQL_TCP_PORT: ${DB_PORT} volumes: - app_db_data:/var/lib/mysql app-backup-db: image: psychomantys/database-backup:latest environment: DB_TYPE: "maria" DB_BACKUP_KEEP_DAYS: 7 DB_BACKUP_KEEP_WEEKS: 4 DB_BACKUP_KEEP_MONTHS: 12 DB_BACKUP_SCHEDULE: "00 03 * * * " DB_NAMES: ${DB_NAME} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} DB_HOST: ${DB_HOST} DB_PORT: ${DB_PORT} volumes: - type: bind source: /home/app/backup/mariadb/ target: /data volumes: app_db_data:
核心配置变量
| 环境变量 | 描述 |
|---|---|
DB_TYPE | 数据库类型,可选值:mariadb、mongo、mysql、postgresql 或 openldap |
DB_EXCLUDE | 排除备份的数据库名称列表,以空格分隔 |
DB_NAMES | 要备份的数据库名称列表,以空格分隔;为空时备份所有数据库,默认值为空 |
DB_USER | 用于备份的数据库用户 |
DB_PASSWORD | 数据库用户密码 |
DB_HOST | 数据库服务器主机地址 |
DB_PORT | 数据库服务器端口,默认使用对应DB_TYPE的默认端口 |
DB_BACKUP_DIR | 备份文件存储目录,默认值为/data;若以s3://开头,则将备份流式传输至S3桶 |
DB_BACKUP_SUFFIX | 备份文件后缀,默认值为.sql.xz |
DB_BACKUP_KEEP_DAYS | 保留每日备份的数量,默认值为7;设为0则禁用 |
DB_BACKUP_KEEP_WEEKS | 保留每周备份的数量,默认值为4;设为0则禁用 |
DB_BACKUP_KEEP_MONTHS | 保留每月备份的数量,默认值为6;设为0则禁用 |
DB_BACKUP_SCHEDULE | Cron表达式,用于设置自动备份时间,默认值为00 03 * * *(每日凌晨3点) |
DB_SPLIT | 若设为false,则不按数据库名称拆分备份文件 |
DB_COMPRESS_EXTRA_ARGS | 压缩命令的额外参数 |
DB_DUMP_EXTRA_ARGS | 数据库导出命令的额外参数 |
DB_LIST_EXTRA_ARGS | 数据库列表命令的额外参数 |
DB_BACKUP_PREFIX | 备份文件前缀,默认值为"${db_name}-${DB_HOST}" |
S3/对象存储配置变量
| 环境变量 | 描述 |
|---|---|
S3_ENABLE | 是否启用S3备份,启用时需配置以下S3参数 |
S3_ACCESS_KEY | 访问S3桶的Access Key |
S3_SECRET_KEY | 访问S3桶的Secret Key |
S3_ENDPOINT | S3服务端点,可填写MinIO等兼容S3的服务地址,默认使用AWS S3 |
S3_BUCKET | S3桶名称 |
S3_BUCKET_DIR | S3桶中存储备份的目录路径 |
S3_REGION | S3桶所在区域,目前无默认值 |
S3_WRITEONLY | 若设为"true",则不在S3上删除任何文件(例如通过桶策略控制删除时使用) |
S3_CLEANUP | 若设为"true",则启用S3上的备份清理(当桶无生命周期策略时使用) |
默认备份任务每日按DB_BACKUP_SCHEDULE配置执行,也可通过以下命令手动触发:
shdocker exec -it "${CONTAINER}" /backup_database.sh start
其中${CONTAINER}为容器名称或ID。
通过修改DB_BACKUP_SCHEDULE环境变量自定义备份频率,格式为Cron表达式(分 时 日 月 周)。例如:
00 02 * * * 表示每日凌晨2点执行00 03 * * 0 表示每周日凌晨3点执行Cron表达式语法可参考 cron.guru。
本地备份时,会自动创建daily、weekly、monthly目录,并通过硬链接存储备份文件以节省磁盘空间;使用S3流式备份时,本地不存储文件。
以下为恢复备份的常用方法。
按Docker Compose示例配置容器后,执行以下命令恢复指定备份文件(替换${BACKUP_FILENAME}为备份文件名,${CONTAINER}为容器名称):
shdocker exec -ti "${CONTAINER}" db_restore "${BACKUP_FILENAME}"
示例:
shdocker exec -ti mysql-backup_app-backup-db_1 db_restore "/data/daily/opa-2020-10-31-02:20:00.sql.xz"
注意:部分数据库类型可能不支持
db_restore命令,需根据实际数据库类型使用相应的恢复工具。
| 软件名称 | 版本 |
|---|---|
| mariadb | 10.11 |
| mongo | 8.0 |
| postgresql | 17.0 |
| openldap | 2.5.13 |
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




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