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

1. 下载文件
   从GitHub Dockerpool社区下载MySQL镜像项目:
[root@docker1 ~]# git clone https://github.com/DockerPool/mysql.git
Cloning into 'mysql'...
remote: Counting objects: 19, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 19 (delta 4), reused 19 (delta 4), pack-reused 0
Unpacking objects: 100% (19/19), done.
查看内容,包括已经写好的Dockerfile和若干脚本:
[root@docker1 ~]# cd mysql/
[root@docker1 mysql]# ls
create_db.sh  Dockerfile  import_sql.sh  LICENSE  my.cnf  mysqld_charset.cnf  README.md  run.sh

#本文参考了「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"]

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

快速创建带mysql的Centos Docker镜像

[root@docker1 mysql]# ls

create_db.sh   my.cnf   mysql-community-libs-5.7.18-1.el7.x86_64.rpm    RPM

Dockerfile    mysql-community-client-5.7.18-1.el7.x86_64.rpm  mysql-community-server-5.7.18-1.el7.x86_64.rpm  Running

import_sql.sh  mysql-community-common-5.7.18-1.el7.x86_64.rpm  mysqld_charset.cnf                     run.sh

LICENSE      mysql-community-devel-5.7.18-1.el7.x86_64.rpm   README.md

下面需要事先下载如下的RPM包:

mysql-community-common-5.7.18-1.el7.x86_64.rpm

mysql-community-libs-5.7.18-1.el7.x86_64.rpm

mysql-community-devel-5.7.18-1.el7.x86_64.rpm

mysql-community-client-5.7.18-1.el7.x86_64.rpm

mysql-community-server-5.7.18-1.el7.x86_64.rpm

[root@docker1 mysql]# cat Dockerfile

#本文参考了「tutum」的 Dockerfile

FROM sshd:centos

MAINTAINER Waitfish

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

ENV DEBIAN_FRONTEND noninteractive

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

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

ADD mysql-community* /

#安装mysql服务 --nosignature 去掉校验安装

RUN yum update -y && \

yum install wget rpm -y && \

#rpm -e mariadb-libs* --nodeps && \

#yum install libaio* libnuma* net-tools* perl* -y && \

yum install numactl perl libaio net-tools -y && \

yum install gcc* ncurses ncurses-devel -y && \

rpm -ivh mysql-community-common* --nosignature && \

rpm -ivh mysql-community-libs* --nosignature && \

rpm -ivh mysql-community-devel* --nosignature && \

rpm -ivh mysql-community-client* --nosignature && \

rpm -ivh mysql-community-server* --nosignature

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

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"]

本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/2046751

【系列7】使用Dockerfile创建带mysql的Centos Docker镜像相关推荐

  1. 【系列5】使用Dockerfile创建带weblogic的Centos Docker镜像

    Weblogic是一个基于Java EE架构的中间件(应用服务器),WebLogic由Oracle公司维护. WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络应用和数据库应用的J ...

  2. 【系列8】使用Dockerfile创建带MongoDB的Centos Docker镜像

    MongoDB是一款可扩展.高性能的开源文档(Document-Oriented)数据库.它采用C++开发,支持复杂的数据类型和强大的查询语言,提供了关系数据库的绝大部分功能.MongoDB由于其高性 ...

  3. 基于Dockerfile创建一个最简单的docker镜像

    试着创建一个docker image, 不在乎实用性和功能,只是对docker 创建image 有个大概的了解,所以有此文章. 文章目录 step1. 创建文件夹 step2. 进入文件夹 step3 ...

  4. 创建带Tomcat服务的Centos Docker镜像

    Tomacat服务器是一个免费的开源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下普遍使用,是开发和高度JSP程序的首选.  下面我就分步骤向大家介绍如何创建 ...

  5. mysql sshd_制作Docker镜像之mysqlkeepalivedsshd

    制作Docker镜像之mysql&keepalived&sshd mysql docker keepalived ssh 注:该实验采用的docker版本:Docker version ...

  6. 创建支持nginx服务的docker镜像

    环境: [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-n ...

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

    1.进入Linux后,使用Docker命令下载MySQL,命令如: docker pull mysql:5.7 运行该命令后,则会显示以下日志: [root@localhost ~]# docker ...

  8. 创建带用户认证的docker私有仓库与管理

    下载registry 镜像 registy为docker官方提供的一个镜像,我们可以用它来创建本地的docker私有仓库. docker pull registry cd /opt/ 创建一个auth ...

  9. 如何创建一份springboot的docker镜像

    2019独角兽企业重金招聘Python工程师标准>>> FROM centos:7 ENV JAVA_HOME /usr/java/jdk1.7.0_55 ENV MAC_PUBLI ...

最新文章

  1. 20181029NOIP模拟赛T2
  2. python计算警告:overflow encountered in exp(指数函数溢出)(sigmoid函数的numpy数组计算方式)
  3. .NET Core开发实战(第35课:MediatR:让领域事件处理更加优雅)--学习笔记
  4. jQuery遍历div,判断是否为空,为空时执行某个操作
  5. Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)
  6. python处理json文件_python读取json文件转成excel
  7. VS2019 安装 ReportViewer报表控件及设计器
  8. 基于java+swing的物业收费管理系统(java+swing+Gui)
  9. java vscode跳转类定义_快速使用 vscode 进行 Java 编程
  10. Android 给透明png图片添加白色底色(修改像素点的形式)
  11. 坯子库怎么导入插件_坯子库插件下载|
  12. 苹果6s微信提示未连接服务器,苹果6s微信无法打开,一直显示正在载入怎么处理?...
  13. Android6.0 Marshmallow运行时权限申请框架
  14. 【环境配置】自定义Linux欢迎界面/etc/motd文件
  15. processing画坐标系,画函数图像
  16. 【MySql】SQL语句DDL类
  17. Java实现本机IP的修改和获取
  18. 1.31亿月活的爆款游戏,它的后端架构是怎样的?
  19. 相对论中的火车隧道问题
  20. 在linux下修改emacs颜色字体,Emacs的字体设置方法总结

热门文章

  1. bat批处理教程 24
  2. DOM相关(主要是var和let的区别用法)
  3. 判断radio单选按钮是否选中
  4. 利用专用文件夹隐藏文件 (tasks、fonts)
  5. 织梦缩略图自动补齐绝对路径_[教程]织梦CMS缩略图和文章内容图片自动转化为带域名的绝对路径...
  6. _Linux结束进程到底有多少种方法?
  7. zabbix中mysql连不上的排错_zabbix监控软件的使用排错
  8. python 小说爬虫_Python实现的爬取小说爬虫功能示例
  9. flux读取不到数据_初学flux的疑问?无法添加数据到DOM
  10. 不是有效的函数或过程名_过程和函数