Docker常用管理脚本
     分类:虚拟化     有: 0 条评论

Docker常用管理脚本

     分类:虚拟化     有: 0 条评论

数据库备份到真机

例:
backup_mariadb.sh脚本(放入Docker容器里)

#!/bin/bash
#
rm /jiradb_*     #删除旧的备份文件
MYUSER=root
MYPASS="123456789"
MYIP="localhost"
MYPORT="3306"
mysqldump jiradb > jiradb_$(date +%Y%m%d).sql -u$MYUSER -p$MYPASS --host=$MYIP --port=$MYPORT
exit             #退出容器

backup_jiradb.sh脚本(放在真机上,加入ctontab中)

#/bin/bash
docker exec -ti 0ba76bea9688 sh /backup_mariadb.sh      #0ba76bea9688是容器ID
docker cp 0ba76bea9688:/jiradb_$(date +%Y%m%d).sql /volume2/BackUP/JIRA_Data
find /volume2/BackUP/JIRA_Data -mtime +7 -type f -name '*.sql' -exec rm -f {} \;     #删除7天以前的sql文件

容器或内服务随系统启动

在docker宿主机上编写一个服务,这里是用chkconfig方式,当然也可以编写systemctl服务,原理是一样的。

这里的joomla是安装在lnmp环境里的,docker镜像是用lnmp镜像为基础,安装好后只要启动lnmp服务就等于启动了joomla了。如果lnmp本身是自启动的,那就只需要启动容器就行了。

vim /etc/init.d/joomla

#!/bin/bash
# chkconfig: 2345 90 60
start_docker=`docker run  -tid -p 80:80 -v /home/joomla/:/home/wwwroot/defaule joomla2 /bin/bash`
#
docker start ${start_docker}
case \"$1\" in
        start)
                docker exec -ti ${start_docker} sh /usr/bin/lnmp start
                ;;
        *)
                docker exec -ti ${start_docker} sh /usr/bin/lnmp restart
        ;;
esac

(●゚ω゚●)