docker 制作mysql镜像并自动安装


Posted in Servers onMay 20, 2022

centos7环境下 一键制作mysql docker镜像,并安装

centos7环境下 一键制作mysql docker镜像,并安装

shell脚本内容如下:

#docker自动安装mysql
echo -e "\033[32m '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 默认安装参数: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' \033[0m"
echo -e "\033[32m '端口:3309' \033[0m"
echo -e "\033[32m '映射宿主机路径: /mysql' \033[0m"
echo -e "\033[32m '密码:xxxxxx' \033[0m"
echo -e "\033[32m '容器名称:mysql8' \033[0m"
echo -e "\033[32m '开启binlog' \033[0m"
echo -e "\033[32m '设置连接数1k' \033[0m"
echo -e "\033[32m '设置连接超时断开24h' \033[0m"
echo -e "\033[32m '设置使用4个cpu核心' \033[0m"
mkdir -p /mysql
### 1下载镜像
docker pull mysql
if [ $? -eq 0 ]
    then 
        echo -e "\033[32m '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 1下载镜像 finish >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' \033[0m"
    else 
        echo -e "\033[31m '__________________________________  1下载镜像 bad ,and EXIT' \033[0m"
        exit 1
fi
###______________________________________________________________________________________________________
### 创建 dockerfile
rm -rf ./mymysql.yaml
echo '### dockerfile 自定义mysql容器镜像' >> ./mymysql.yaml
echo 'FROM mysql:latest' >> ./mymysql.yaml
echo '#使用官方mysql镜像最新版' >> ./mymysql.yaml
echo '' >> ./mymysql.yaml
echo 'RUN echo "###" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo '' >> ./mymysql.yaml
echo 'RUN echo "log_bin = 1" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo '#开启binlog日志,存储在默认位置' >> ./mymysql.yaml
echo '' >> ./mymysql.yaml
echo 'RUN echo "max_connections = 1050" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo 'RUN echo "mysqlx_max_connections = 1000" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo '#最大连接数' >> ./mymysql.yaml
echo '' >> ./mymysql.yaml
echo 'RUN echo "wait_timeout=86400" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo 'RUN echo "interactive_timeout=86400" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo '#空闲断开时长,秒' >> ./mymysql.yaml
echo '' >> ./mymysql.yaml
echo 'RUN echo "innodb_read_io_threads=4" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo 'RUN echo "innodb_write_io_threads=4" >> /etc/mysql/my.cnf' >> ./mymysql.yaml
echo '#设置使用多核cpu,默认使用4核,根据cpu核心数设置' >> ./mymysql.yaml
###______________________________________________________________________________________________________
###使用mymysql.yaml构建镜像mymysql:1
docker build -f ./mymysql.yaml -t "mymysql:1" .
if [ $? -eq 0 ]
    then 
        echo -e "\033[32m '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> mymysql:1 镜像构建成功 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' \033[0m"
    else 
        echo -e "\033[31m '__________________________________  mymysql:1 镜像构建失败,and EXIT' \033[0m"
        exit 1
fi
### 2创建容器
docker create -p 3309:3306 --restart=always --name mysql8 -v /mysql/mysql_08/log:/var/log/mysql -v /mysql/mysql_08/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -e MYSQL_ROOT_PASSWORD=xxxxx -it  mymysql:1
if [ $? -eq 0 ]
    then 
        echo -e "\033[32m '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  2创建容器 finish >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' \033[0m"
    else 
        echo -e "\033[31m '__________________________________  2创建容器 bad ,and EXIT' \033[0m"
        exit 1
fi
### 3启动容器
docker start mysql8
if [ $? -eq 0 ]
    then 
        echo -e "\033[32m '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 3启动容器 finish >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>' \033[0m"
    else 
        echo -e "\033[31m '__________________________________  3启动容器 bad ,and EXIT' \033[0m"
        exit 1
fi
### 显示容器状态
echo -e "\033[32m '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 显示已运行容器:' \033[0m"
docker ps

到此这篇关于docker 制作mysql镜像并自动安装脚本的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
Mar 31 Servers
配置nginx 重定向到系统维护页面
Jun 08 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
Nginx部署vue项目和配置代理的问题解析
Aug 04 Servers
使用Nginx搭载rtmp直播服务器的方法
Oct 16 Servers
CentOS安装Nginx并部署vue
Apr 12 Servers
nginx location 带斜杠【 / 】与不带的区别
Apr 13 Servers
nginx配置之并发频次限制
Apr 18 Servers
tomcat正常启动但网页却无法访问的几种解决方法
May 06 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
Nginx如何配置根据路径转发详解
Jul 23 Servers
win7配置本地ftp服务器的图文教程
Aug 05 Servers
阿里云服务器Ubuntu 20.04上安装Odoo 15
May 20 #Servers
Apache SeaTunnel实现 非CDC数据抽取
May 20 #Servers
apache ftpserver搭建ftp服务器
May 20 #Servers
服务器间如何实现文件共享
May 20 #Servers
Nginx限流和黑名单配置
May 20 #Servers
Nginx利用Logrotate实现日志分割
May 20 #Servers
nginx lua 操作 mysql
May 15 #Servers
You might like
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
一个php Mysql类 可以参考学习熟悉下
2009/06/21 PHP
php循环语句 for()与foreach()用法区别介绍
2012/09/05 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
php str_getcsv把字符串解析为数组的实现方法
2017/04/05 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
javascript的BOM汇总
2015/07/16 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
基于Jquery Ajax type的4种类型(详解)
2017/08/02 jQuery
常用的9个JavaScript图表库详解
2017/12/19 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
python os.path模块常用方法实例详解
2018/09/16 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
后勤采购员岗位职责
2013/12/19 职场文书
高级护理专业毕业生推荐信
2013/12/25 职场文书
商业房地产广告语
2014/03/13 职场文书
分公司经理任命书
2014/06/05 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
golang中字符串MD5生成方式总结
2021/07/04 Golang