docker制作mysql镜像,运行mysql容器并初始化

网友投稿 369 2022-09-24

docker制作mysql镜像,运行mysql容器并初始化

PS:经过改进,使得运行容器后mysql初始化自动完成,服务也同时启动

说明

基于docker.io/caio2k/centos7:latest镜像,通过Dockerfile文件传入一个YUM配置文件和初始化脚本,生成新的镜像build:mysql

Dockerfile文件:

FROM docker.io/caio2k/centos7:latestMAINTAINER Ops_An nsd_anqixiang@163.comENV EnvironmentFile=-/etc/sysconfig/mysqlRUN rm -rf /etc/yum.repos.d/*COPY *.repo /etc/yum.repos.d/COPY start.sh /root/start.shRUN yum -y install mysql-server && yum clean all && echo "a" |passwd --stdin root && chmod 777 /root/start.shVOLUME /data/mysql3306WORKDIR /usr/local/mysqlEXPOSE 3306HEALTHCHECK --interval=5s --timeout=3s --retries=3 CMD mysql -uroot -p123456 -e 'select user from mysql.user where user="root"'CMD ["/usr/bin/bash", "/root/start.sh"]

YUM配置文件: 我是把mysql-5.7.17.tar.gz的源码包解压后做了一个自己的YUM仓库

[local_repo]name=Centos-$releasever-Basebaseurl="ftp://192.168.1.254/centos-1804"enabled=1gpgcheck=0[mysql_repo]name=Centos-$releasever-Basebaseurl="ftp://192.168.1.254/myrepo"enabled=1gpgcheck=0

初始化脚本start.sh:

#!/bin/bash#mysql初始化INIT_MYSQL(){ mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3306 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid pwd=`cat /root/.mysql_secret |sed -n '2p'` mysqladmin -uroot -p"${pwd}" password '123456'}#mysqld守护脚本MYSQL_DAEMON(){ while : do Num=`ps aux |grep mysql |wc -l` [ "$Num" -lt 2 ] && /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS sleep 5 done}/usr/sbin/sshd -D &File_Count=`ls /data/mysql3306 |wc -l`[ "$File_Count" -eq 0 ] && INIT_MYSQL MYSQL_DAEMON

/etc/my.cnf配置文件

[mysqld]datadir=/data/mysql3306socket=/data/mysql3306/mysql.socksymbolic-links=0log-error=/data/mysql3306/mysqld.logpid-file=/var/run/mysqld/mysqld.piduser=mysql[client]socket=/data/mysql3306/mysql.sock

制作镜像:

mkdir /root/mysqlcd /root/mysql把Dockfile文件,YUM配置文件,初始化脚步放入/root/mysql下运行:docker build -t build:mysql .

运行容器并与宿主机时间同步:

docker run -it -v /data/mysql/my.cnf:/etc/my.cnf \-v /data/mysql/data/:/data/mysql3306 -v /etc/localtime:/etc/localtime build:mysql

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python之记账程序
下一篇:SocialMarketing:维他柠檬茶联名斗罗大陆动画???我次元壁裂开了!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~