backup
hub.htmltoo.com:5000/http:backup-20191201
卷:
/data/file:/data/file
/data/docker/mysql/backup:/home/backup
/data/file/backup:/backup
变量:
CRON_TIME = 0 3 * * *
MAX_BACKUPS = 10
INIT_BACKUP = yes
备注:
CRON_TIME: 计划任务 默认每天0点
MAX_BACKUPS: 要保留的备份数量, 如果没指定, 不限制。
INIT_BACKUP: yes, 容器起的时候备份
ls /backup # 查看备份列表
vi /data/docker/mysql/backup/backup.sh
#!/bin/bash
#临时备份目录
OUT_DIR=/backup/
#获取当前系统时间
DATE=`date +%Y_%m_%d`
mkdir -p $OUT_DIR/$DATE
mysqldump -uroot -pwdqdmm@r -hmariadb --all-databases --ignore-table=information_schema.* --ignore-table=performance_schema.* --ignore-table=mysql.* > $OUT_DIR/$DATE/mysql-all.sql;
mongodump -h mongo:27017 -u root -p wdqdmm@m -o $OUT_DIR/$DATE/mongo/
chmod -R 777 /backup/
vi /data/docker/mysql/backup/mongo_restore.sh
#!/bin/bash
#临时备份目录
OUT_DIR=/backup/mongo
#获取当前系统时间
DATE=`date +%Y_%m_%d`
mongorestore -h mongo:27017 -u root -p wdqdmm@m --drop --noIndexRestore -d admin --dir $OUT_DIR/$DATE/admin
cd /data/docker/tools/Dockerfile/backup
Dockerfile:
FROM alpine:3.9.4
LABEL maintainer "ihunter@vip.qq.com
RUN apk update
RUN apk --update --no-cache add bash tzdata ca-certificates
RUN apk --update --no-cache add net-tools git curl axel wget vim unzip zip geoip cmake autoconf automake libtool go gcc g++
RUN apk --update --no-cache add mysql-client python py-pip groff mongodb-tools gzip openssl libc-dev python-dev openldap-dev
RUN cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN pip install --upgrade awscli
RUN apk -v --purge del py-pip
RUN apk upgrade
RUN rm -rf /var/cache/apk/*
ENV CRON_TIME="0 3 * * *"
ADD run.sh /run.sh
RUN chmod -R 777 /run.sh
CMD /run.sh
run.sh:
#!/bin/bash
if [ -n "${INIT_BACKUP}" ]; then
/home/backup/backup.sh
chmod -R 777 /backup
fi
#删除几天前的备份文件
find /backup -mtime +${MAX_BACKUPS} -delete
echo "${CRON_TIME} /home/backup/backup.sh >> /backup.log 2>&1" > /crontab.conf
crontab /crontab.conf
echo "=> Running cron task manager"
exec crond -f
/data/docker/tools/Dockerfile/backup
docker build -t backup .
docker tag backup:latest hub.htmltoo.com:5000/http:backup-20191201
docker push hub.htmltoo.com:5000/http:backup-20191201