数据备份
核心命令
# 备份卷
docker run --rm -v mydata:/source -v $(pwd):/backup alpine \
tar czf /backup/mydata-$(date +%Y%m%d).tar.gz -C /source .
# 恢复卷
docker run --rm -v mydata:/target -v $(pwd):/backup alpine \
tar xzf /backup/mydata-20240101.tar.gz -C /target
# 复制卷
docker volume create mydata-backup
docker run --rm -v mydata:/source -v mydata-backup:/target alpine \
cp -a /source/. /target/
自动备份
#!/bin/bash
# backup.sh
DATE=$(date +%Y%m%d_%H%M)
docker run --rm -v mydata:/source -v /backups:/backup alpine \
tar czf /backup/mydata_$DATE.tar.gz -C /source .
find /backups -name "*.tar.gz" -mtime +7 -delete
小结
| 操作 | 命令 |
|---|---|
| 备份 | tar 打包卷内容 |
| 恢复 | tar 解包到卷 |
| 自动化 | cron + 脚本 |