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 设置多个站跨域
Mar 09 Servers
Nginx 502 Bad Gateway错误原因及解决方案
Mar 31 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
Filebeat 采集 Nginx 日志的方法
Mar 31 Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 Servers
Windows和Linux上部署Golang并运行程序
Apr 22 Servers
windows系统安装配置nginx环境
Jun 28 Servers
搭建zabbix监控以及邮件报警的超级详细教学
Jul 15 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
Jul 15 Servers
nginx访问报403错误的几种情况详解
Jul 23 Servers
django项目、vue项目部署云服务器的详细过程
Jul 23 Servers
SpringBoot前端后端分离之Nginx服务器下载安装过程
Aug 14 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 for 循环使用的简单实例
2016/06/02 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
Bootstrap基本插件学习笔记之按钮(21)
2016/12/08 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
puppeteer库入门初探
2019/01/09 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
python列表与元组详解实例
2013/11/01 Python
Python 对象中的数据类型
2017/05/13 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
将python图片转为二进制文本的实例
2019/01/24 Python
Python中的元组介绍
2019/01/28 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
2020/01/03 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
法律进社区实施方案
2014/03/21 职场文书
教师演讲稿大全
2014/05/16 职场文书
日语系毕业求职信
2014/07/27 职场文书
员工辞退通知书
2015/04/17 职场文书
郭明义电影观后感
2015/06/08 职场文书
人民调解协议书
2016/03/21 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis