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 相关文章推荐
win10安装配置nginx的过程
Mar 31 Servers
Nginx配置https原理及实现过程详解
Mar 31 Servers
Nginx解决403 forbidden的完整步骤
Apr 01 Servers
Nginx Rewrite使用场景及配置方法解析
Apr 01 Servers
解析在浏览器地址栏输入一个URL后发生了什么
Jun 21 Servers
nginx反向代理配置去除前缀案例教程
Jul 26 Servers
详解Nginx 被动检查服务器的存活状态
Oct 16 Servers
Apache Linkis 中间件架构及快速安装步骤
Mar 16 Servers
深入解析Apache Hudi内核文件标记机制
Mar 31 Servers
Windows Server 2019 域控制器安装图文教程
Apr 28 Servers
Nginx如何限制IP访问只允许特定域名访问
Jul 23 Servers
windows系统搭建WEB服务器详细教程
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
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
PHP云打印类完整示例
2016/10/15 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
用vue-cli开发vue时的代理设置方法
2018/09/20 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
给面试官的感谢信
2014/02/01 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
《美丽的彩虹》教学反思
2014/02/25 职场文书
结婚保证书
2015/01/16 职场文书
工作简报怎么写
2015/07/21 职场文书
python基础之//、/与%的区别详解
2022/06/10 Python