【系列7】使用Dockerfile创建带mysql的Centos Docker镜像
下面用官方的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镜像相关推荐
- 【系列5】使用Dockerfile创建带weblogic的Centos Docker镜像
Weblogic是一个基于Java EE架构的中间件(应用服务器),WebLogic由Oracle公司维护. WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络应用和数据库应用的J ...
- 【系列8】使用Dockerfile创建带MongoDB的Centos Docker镜像
MongoDB是一款可扩展.高性能的开源文档(Document-Oriented)数据库.它采用C++开发,支持复杂的数据类型和强大的查询语言,提供了关系数据库的绝大部分功能.MongoDB由于其高性 ...
- 基于Dockerfile创建一个最简单的docker镜像
试着创建一个docker image, 不在乎实用性和功能,只是对docker 创建image 有个大概的了解,所以有此文章. 文章目录 step1. 创建文件夹 step2. 进入文件夹 step3 ...
- 创建带Tomcat服务的Centos Docker镜像
Tomacat服务器是一个免费的开源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下普遍使用,是开发和高度JSP程序的首选. 下面我就分步骤向大家介绍如何创建 ...
- mysql sshd_制作Docker镜像之mysqlkeepalivedsshd
制作Docker镜像之mysql&keepalived&sshd mysql docker keepalived ssh 注:该实验采用的docker版本:Docker version ...
- 创建支持nginx服务的docker镜像
环境: [root@linux-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@linux-n ...
- 【系列7】使用Dockerfile创建带mysql5.7的Centos Docker镜像1
1.进入Linux后,使用Docker命令下载MySQL,命令如: docker pull mysql:5.7 运行该命令后,则会显示以下日志: [root@localhost ~]# docker ...
- 创建带用户认证的docker私有仓库与管理
下载registry 镜像 registy为docker官方提供的一个镜像,我们可以用它来创建本地的docker私有仓库. docker pull registry cd /opt/ 创建一个auth ...
- 如何创建一份springboot的docker镜像
2019独角兽企业重金招聘Python工程师标准>>> FROM centos:7 ENV JAVA_HOME /usr/java/jdk1.7.0_55 ENV MAC_PUBLI ...
最新文章
- 20181029NOIP模拟赛T2
- python计算警告:overflow encountered in exp(指数函数溢出)(sigmoid函数的numpy数组计算方式)
- .NET Core开发实战(第35课:MediatR:让领域事件处理更加优雅)--学习笔记
- jQuery遍历div,判断是否为空,为空时执行某个操作
- Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)
- python处理json文件_python读取json文件转成excel
- VS2019 安装 ReportViewer报表控件及设计器
- 基于java+swing的物业收费管理系统(java+swing+Gui)
- java vscode跳转类定义_快速使用 vscode 进行 Java 编程
- Android 给透明png图片添加白色底色(修改像素点的形式)
- 坯子库怎么导入插件_坯子库插件下载|
- 苹果6s微信提示未连接服务器,苹果6s微信无法打开,一直显示正在载入怎么处理?...
- Android6.0 Marshmallow运行时权限申请框架
- 【环境配置】自定义Linux欢迎界面/etc/motd文件
- processing画坐标系,画函数图像
- 【MySql】SQL语句DDL类
- Java实现本机IP的修改和获取
- 1.31亿月活的爆款游戏,它的后端架构是怎样的?
- 相对论中的火车隧道问题
- 在linux下修改emacs颜色字体,Emacs的字体设置方法总结
热门文章
- bat批处理教程 24
- DOM相关(主要是var和let的区别用法)
- 判断radio单选按钮是否选中
- 利用专用文件夹隐藏文件 (tasks、fonts)
- 织梦缩略图自动补齐绝对路径_[教程]织梦CMS缩略图和文章内容图片自动转化为带域名的绝对路径...
- _Linux结束进程到底有多少种方法?
- zabbix中mysql连不上的排错_zabbix监控软件的使用排错
- python 小说爬虫_Python实现的爬取小说爬虫功能示例
- flux读取不到数据_初学flux的疑问?无法添加数据到DOM
- 不是有效的函数或过程名_过程和函数