Docker教程四之基于Centos7的MySql环境镜像

拜拜、爱过 提交于 2019-12-07 15:06:47

好久没有写 docker 镜像的构建了。 我之前完成了web项目的部署,和简单的负载,但是缺少对数据库的镜像,而且我的Web也都为静态页面,所以在接着对我的web项目进行加工前,需要使用到数据库,个人服务器有限,所以还是以构建镜像的方式进行添加


数据库我采用 mysql

因为我对mysql第一次接触,所以    我也踩了不少坑

    1,数据库初始密码  mysql 5.7 开始,初始化密码的呈现方式有所改变

    2,数据库启动问题   mysql 5.7 开始, 启动文件命令有所改变

    3,镜像文件体积(优化了部分)


资源: MySQL 下载地址

dockerfile

FROM centos:7

RUN yum install -y libaio-devel.x86_64 numactl.x86_64 &&\
	yum clean all

ENV Mysql_HOME /usr/local/mysql/
ENV PATH $PATH:$Mysql_HOME/bin

ADD my.cnf /etc 	
ADD startup.sh /
ADD mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz /usr/local

RUN mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql &&\
	useradd mysql && \
	chmod 777 /startup.sh &&\
	chmod 664 /etc/my.cnf &&\
	mkdir $Mysql_HOME/data &&\
	chown mysql:mysql -R  /usr/local/mysql

EXPOSE 3306 33060
CMD ["/startup.sh"]

startup.sh

#!/bin/sh
#初始化
mysqld --initialize --user=mysql

#启动服务
mysqld

my.cnf

    这个配置文件地址:mysql配置文件查看地址

    具体配置其实不用那么多,具体看自己需求,对mysql, 我还需要再多多研究


因为我没有优化过过程,所以镜像文件体积还是会大很多,具体对于体积的优化, 我参考了:优化体积博客

内容具体是说:

     尽量减少构建过程,相同的构建可以合并到一个过程中,比如,yum insert 相关就可以合并到一个过程中,并且,每次yum insert 后 最好做 clean 处理,还有cp 过程,等。


对于MySQL 5.7 版本镜像启动,需要注意:

    1,MySQL 启动文件的不同

    2,初始密码在 所打印的日志中:如下图



可以看我的码云:去码云看看

本章到此结束

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!