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实现反向代理
Sep 20 Servers
nginx反向代理时如何保持长连接
Mar 31 Servers
使用goaccess分析nginx日志的详细方法
Jul 09 Servers
nginx内存池源码解析
Nov 20 Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 Servers
Linux、ubuntu系统下查看显卡型号、显卡信息详解
Apr 07 Servers
Nginx+Tomcat负载均衡多实例详解
Apr 11 Servers
Tomcat配置访问日志和线程数
May 06 Servers
配置nginx负载均衡
May 06 Servers
Windows Server 2008配置防火墙策略详解
Jun 28 Servers
Centos7 Shell编程之正则表达式、文本处理工具详解
Aug 05 Servers
Shell中的单中括号和双中括号的用法详解
Dec 24 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
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
JS模板实现方法
2013/04/03 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
详谈javascript异步编程
2016/02/21 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
Vue.js学习之过滤器详解
2017/01/22 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
2019/08/27 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
python中列表和元组的区别
2017/12/18 Python
Python之pandas读写文件乱码的解决方法
2018/04/20 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
MIRTA官网:手工包,100%意大利制造
2020/02/11 全球购物
公司成立感言
2014/01/11 职场文书
大课间活动制度
2014/01/18 职场文书
中学家长会邀请函
2014/02/03 职场文书
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
关于安全的广播稿
2014/10/23 职场文书
加入学生会自荐书
2015/03/05 职场文书
python如何在word中存储本地图片
2021/04/07 Python
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python
Django基础CBV装饰器和中间件
2022/03/22 Python