Docker学习(七)dockerFile本地安装MySQL5.7.25

Docker学习MySQL
placeholder image
admin 发布于: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值修改为‘%’,同时再二次修改密码后取消跳过密码;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区