Docker学习(七)dockerFile本地安装MySQL5.7.25
Docker学习MySQLadmin 发布于:2019-03-24 21:10:20
阅读:loading
dockerFile本地安装MySQL5.7.25,这种安装方法就是将前面学习Linux时安装MySQL的方式给转换成了DockerFile的方式,假设之前是分十个步骤一步一步的去设置安装,现在则是将所有的过程及步骤写在DockerFile文件中一个命令所有的东西都搞定,从某种程度中来讲也算是非常简化了安装过程。
#自定义Docker-MySQL5.7镜像
#基础镜像
FROM centos:latest
#签名
MAINTAINER chendd<88911006@qq.com>
#定义环境变量
ENV WORK_HOME /usr/local
#设置进入容器后的主目录
WORKDIR $WORK_HOME
RUN yum -y install numactl
RUN yum -y install libaio
#拷贝说明文件
COPY readme.txt $WORK_HOME/readme.txt
#RUN echo "output...."
#拷贝并解压mysql
ADD mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz $WORK_HOME
#修改MySQL的解压文件夹名称-----TODO
RUN mv $WORK_HOME/mysql-5.7.25-linux-glibc2.12-x86_64 $WORK_HOME/mysql
#COPY mysql $WORK_HOME/mysql
#增加系统mysql用户组
RUN groupadd mysql
RUN useradd -g mysql mysql
RUN chown -R mysql /usr/local/mysql
RUN chgrp -R mysql /usr/local/mysql
RUN mkdir /usr/local/mysql/data
VOLUME ["/usr/local/mysql/data"]
RUN cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#RUN /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
RUN /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
#覆盖MySQL安装时的几个文件
COPY mysql-files/my.cnf /etc/my.cnf
#support-files/mysql.server文件也可以在此步骤由本地宿主机上的文件提供
#增加mysql的bin目录的环境变量
ENV PATH $PATH:$WORK_HOME/mysql/bin
#默认端口开放
EXPOSE 3306
#容器启动后执行以下命令,启动mysql
CMD ["/usr/local/mysql/bin/mysqld_safe"]
如果你对我的前面一篇Linux安装MySQL的教程有点熟悉的话,实际上上述的过程就是在一步一步的重复以前的安装方式,但由于它是基于本地安装包的方式,故这么干也有它的优势,但目前已经发现了两个弊端,在我的新手水平范围内无法解决,作为遗留问题留给往后再去解决吧,分别是:
(1)安装文件一共不到700M,生成的镜像文件大小超过10G;
(2)挂载数据库文件的数据卷总是失败;
(3)需要在my.cnf文件中设置免密码登录,跳过密码后进入容器手动更改mysql数据库下的user表,将root用户的host值修改为‘%’,同时再二次修改密码后取消跳过密码;
点赞