46·存储进阶

数据备份

数据备份

核心命令

# 备份卷
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 + 脚本

练习编辑器

bash
Loading...