当前位置: 首页 > news >正文

centos7镜像带mysql吗_【系列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"]

相关文章:

  • spark mysql 环境搭建_Hive搭建
  • mysql vsftp_vsftp配置验证方式mysql和文件虑拟用户
  • php mysql 连接运算符_php – MINUS运算符在MySQL?
  • centos7.3中安装mysql_CentOS7.3中安装MySQL5.6
  • qstring取前几个_QT中QString 类的使用--获取指定字符位置、截取子字符串等
  • 怎么用yum安装mysql数据库_使用yum如何安装mysql数据库讲析
  • java完全面向对象吗_浅谈对Java为何是完全面向对象语言
  • java getbean不同实现_Spring Boot 2 实战:根据条件来自动配置不同逻辑的Bean
  • 孝感 java_孝感java工资一般多少,孝感java工资待遇,孝感java工资待遇到多少
  • java struct2拦截器_Java struts2 拦截器 interceptors
  • JAVA安卓4.4.4_Android源码4.4.4_r1下载和编译
  • java 设置listview单元格颜色_动态改变Listview的item背景颜色和item中字体的颜色
  • 最长递增子序列 java_动态规划深入6 最长递增子序列
  • yml mysql参数_yml配置--给参数设置默认值
  • ant java eclipse_(转)Eclipse中使用Ant
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • angular组件开发
  • CSS 提示工具(Tooltip)
  • CSS居中完全指南——构建CSS居中决策树
  • dva中组件的懒加载
  • eclipse的离线汉化
  • HashMap ConcurrentHashMap
  • Javascript弹出层-初探
  • JDK9: 集成 Jshell 和 Maven 项目.
  • JS 面试题总结
  • js中的正则表达式入门
  • Laravel Mix运行时关于es2015报错解决方案
  • MySQL-事务管理(基础)
  • PhantomJS 安装
  • PHP的类修饰符与访问修饰符
  • Python爬虫--- 1.3 BS4库的解析器
  • React的组件模式
  • Redis 懒删除(lazy free)简史
  • socket.io+express实现聊天室的思考(三)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • 对象引论
  • 开源SQL-on-Hadoop系统一览
  • 前嗅ForeSpider采集配置界面介绍
  • 如何用vue打造一个移动端音乐播放器
  • 一些css基础学习笔记
  • 移动端解决方案学习记录
  • 原生Ajax
  • 白色的风信子
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​什么是bug?bug的源头在哪里?
  • ()、[]、{}、(())、[[]]命令替换
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (力扣题库)跳跃游戏II(c++)
  • (推荐)叮当——中文语音对话机器人
  • (原創) 物件導向與老子思想 (OO)
  • (转)IOS中获取各种文件的目录路径的方法