使用Dockerfile創建帶mysql的Centos Docker鏡像
#本文參考了「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鏡像