xalt/backup该镜像作为边车容器,用于备份Docker Compose应用中的持久化数据文件夹,通过定时任务实现数据同步,确保数据在目标服务器上的一致性。
BACKUP_HOST变量设置为非"false"值时触发备份,否则不执行CRON_DATE环境变量定义备份执行时间(cron表达式格式)BACKUP_KEY_FILE)和登录用户(通过BACKUP_USER)DOCKER_COMPOSE_PULL变量,可在备份后检查并拉取服务镜像更新,同时检查自身镜像更新所有持久化数据需存储在与docker-compose.yml同目录下,示例结构:
bash$ tree -AL 1 /opt/docker/jira.domain.com . ├── docker-compose.yml ├── .exclusions ├── jira └── jira-mysql 2 directories, 1 file
需包含参数化的备份容器及待备份容器定义:
yamlversion: '3' services: backup: image: xalt/backup environment: - BACKUP_HOST=10.0.0.1 - BACKUP_SUFFIX=-live - CRON_DATE=20 1 * * * - DOCKER_COMPOSE_PULL=true - TIME_ZONE=Europe/Berlin restart: always volumes: - /home/dummy/.ssh/id_rsa:/tmp/id_rsa:ro - /opt/docker:/opt/docker - .:/path - /var/run/docker.sock:/var/run/docker.sock:rw - /var/run/docker:/var/run/docker jira-mysql: image: xalt/mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=dummy - MYSQL_DATABASE=jira - MYSQL_USER=jira - MYSQL_PASSWORD=dummy networks: jira: aliases: - db restart: always volumes: - ./jira-mysql:/var/lib/mysql jira: image: xalt/jira depends_on: - jira-mysql environment: - VIRTUAL_HOST=jira.domain.com - VIRTUAL_PORT=8080 - RAM_MIN=768M - RAM_MAX=4096M - JAVA_OPTS=-Dfile.encoding=utf-8 -Dsun.jnu.encoding=UTF-8 - HTTPS=true - PROXY_NAME=jira.domain.com networks: jira: reverse-proxy: restart: always volumes: - ./jira:/var/atlassian/jira networks: jira: reverse-proxy: external: true
在服务目录顶层创建"exclude"文件定义需排除的文件/目录:
bash$ cat .exclusions jira/export jira/log
| 参数 | 默认值 | 是否必填 | 说明 |
|---|---|---|---|
| BACKUP_HOST | false | 是 | 备份目标主机(DNS名称或IP),设置为非"false"值时触发备份 |
| BACKUP_KEY_FILE | /tmp/id_rsa | 是 | SSH连接密钥文件路径,需通过卷挂载,示例:- /home/user/.ssh/id_rsa:/tmp/id_rsa:ro |
| BACKUP_PATH | /backup/docker-applications | 是 | 目标服务器上的备份根路径,与BACKUP_SUFFIX组合为完整路径 |
| BACKUP_USER | root | 是 | 目标服务器的SSH登录用户 |
| BACKUP_SUFFIX | "" | 否 | 备份路径后缀,完整路径格式:BACKUP_PATH/[项目目录名]BACKUP_SUFFIX |
| CRON_DATE | "0 0 * * *" | 是 | 备份执行时间(cron表达式),默认每天午夜 |
| DOCKER_COMPOSE_PULL | false | 否 | 设为"true"时,备份后拉取服务镜像更新 |
| TIME_ZONE | UTC | 否 | 容器时区,用于确保cron任务时间准确性,如"Europe/Berlin" |
docker-compose.yml及持久化数据目录docker-compose up -d启动服务,备份将按CRON_DATE定时执行BACKUP_USER和BACKUP_KEY_FILE连接BACKUP_HOSTDOCKER_COMPOSE_PULL,拉取服务镜像及自身镜像更新适用于需要定期备份持久化数据的Docker Compose应用,尤其适合中小型项目的数据保护需求,可作为完整备份策略的一部分(需配合目标服务器的备份方案)。




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务