Docker使用mysqldump命令备份导出mysql容器中的数据
1、查看Docker中运行的容器
[root@localhost ~]# docker ps
2、使用mkdir 创建备份目录
[root@localhost ~]# mkdir -p /data/reggie/dbbak/
3、数据库备份脚本
#!/bin/bash
#在使用之前,请提前创建以下各个目录#获取当前时间
date_now=$(date "+%Y%m%d-%H%M%S")
backUpFolder=/data/reggie/dbbak/
username="root"
db_name="reggie"
password="1234"
#定义备份文件名
fileName="${db_name}_${date_now}.sql"
#定义备份文件目录
backUpFileName="${backUpFolder}/${fileName}"
echo "starting backup mysql ${db_name} at ${date_now}."
#进入容器执行备份命令
docker exec -it mysql /usr/bin/mysqldump -u${username} --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
#进入到备份文件目录
cd ${backUpFolder}
#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}
rm -f ${fileName}
#rm backup the latest 7 days
find ${backUpFolder} -mtime +7 -name "${db_name}_*.sql.tar.gz" -exec rm -f {} ;
4、上传至服务器
chmod a+x mysqlbak.sh
./mysqlbask.sh
5、创建定时任务
crontab -e
0 3 * * * sh /data/reggie/dbbak/mysqlbak.sh
/sbin/service crond start