使用Dockerfile创建带mysql的Centos Docker镜像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Dockerfile创建带mysql的Centos Docker镜像相关的知识,希望对你有一定的参考价值。

下面用官方的rpm源包安装mysql过慢不主张采用yum这种方式

#本文参考了「tutum」的 Dockerfile

FROM docker.io/centos:latest


MAINTAINER Waitfish 


#设置环境变量,所有操作都是非交互式的

ENV DEBIAN_FRONTEND noninteractive


RUN echo "Asia/Shanghai" > /etc/timezone

#注意这里要更改系统的时区设置,因为在Web应用中经常会用到时区这个系统变量,默认的centos会让你的应用此程序发生不可思议的效果哦


#安装mysql服务

RUN yum update -y && \

  yum install wget rpm -y && \

  #wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm && \  #下载速度太慢

  wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm && \

  #rpm -ivh mysql-community-release-el7-5.noarch.rpm --nosignature && \

  yum localinstall mysql57-community-release-el7-7.noarch.rpm -y && \

  rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 && \

  yum install mysql-community-server -y


# 删除预安装的数据库文件

RUN rm -rf /var/lib/mysql/*


# 添加文件夹下的 MYSQL 配置文件

ADD my.cnf /etc/mysql/conf.d/my.cnf

ADD mysqld_charset.cnf /etc/mysql/conf.d/mysqld_charset.cnf


# 添加 MYSQL 的脚本

ADD import_sql.sh /import_sql.sh

ADD run.sh /run.sh

RUN chmod 755 /*.sh


# 设置环境变量,用户名以及秘密

ENV MYSQL_USER admin

ENV MYSQL_PASS **Random**


# 设置主从复制模式下的环境变量

ENV REPLICATION_MASTER **False**

ENV REPLICATION_SLAVE **False**

ENV REPLICATION_USER replica

ENV REPLICATION_PASS replica


# 设置可以允许挂载的卷,可以用来备份数据库和配置文件

VOLUME  ["/etc/mysql", "/var/lib/mysql"]


# 设置可以映射的端口

EXPOSE 3306


# 设置自启动的脚本

CMD ["/run.sh"]

*********************************************************************************************************************************************************************************************************************************************************************************

以上是关于使用Dockerfile创建带mysql的Centos Docker镜像的主要内容,如果未能解决你的问题,请参考以下文章

系列6使用Dockerfile创建带mysql5.7的Centos Docker镜像1

系列6使用Dockerfile创建带LAMP的Centos Docker镜像

使用Dockerfile创建带编译安装znginx服务的Centos Docker镜像

系列2使用Dockerfile创建带sshd服务的Centos Docker镜像

使用Dockerfile创建带Apache服务的Centos Docker镜像1

使用Dockerfile创建一个带 ssh 服务的基础镜像