使用脚本 + crontab 方式定期备份运行在主机docker 容器内部数据
备份脚本:
docker exec -i mysql bash <<'EOF'
mkdir /backup/mysql/$(date +%Y%m%d)
# 备份指定数据库
mysqldump -uroot -padmin discuz > /backup/mysql/$(date +%Y%m%d)/discuz_$(date +%Y%m%d_%H%M%S).sql
# 备份所有数据库
mysqldump --no-defaults --events --all-databases -uroot -padmin > /backup/mysql/$(date +%Y%m%d)/all_$(date +%Y%m%d_%H%M%S).sql
exit
EOF
mkdir /backup/mysql/$(date +%Y%m%d)
docker cp mysql:/backup/mysql/$(date +%Y%m%d) /backup/mysql/
新增crontab任务:
crontab -e
# 每天下午一点执行脚本
0 13 * * * bash /backup/mysql.sh
重启crontabd 服务
service crond restart