基于官方镜像创建自定义MySQL镜像

背景:
部署MySQL数据库需要上传常用的数据库及相关表
部署MySQL数据库需要需要调整MySQL的配置文件

基于官方镜像创建自定义MySQL镜像

1.创建用于初始化的sql

# 将需要默认创建用的sql自定义成一个sql,用于sql的初始化
[kewen@centos-62 new-mysql5.7]$ vim init.sql

创建的表内容为需要插入的相关内容(数据库及相关表):

[kewen@centos-62 new-mysql5.7]$ cat init.sql
-- 以下数据根据自己实际需要进行添加
-- 创建数据库
CREATE DATABASE IF NOT EXISTS chenkewen;

-- 使用数据库
USE chenkewen;



SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for test_name
-- ----------------------------
-- 创建表
DROP TABLE IF EXISTS `test_name`;
CREATE TABLE `test_name` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  `age` int DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb3;

-- ----------------------------
-- Records of test_name
-- ----------------------------

-- 对表插入相关数据
INSERT INTO `test_name` VALUES ('1', 'chen', '1', '18');
INSERT INTO `test_name` VALUES ('2', 'wang', '2', '18');

[kewen@centos-62 new-mysql5.7]$

2.调整默认my.cnf文件

可以根据自己的要求调整 my.cnf 文件,默认my.cnf文件可以使用docker cp从启动的docker容器中拉取出来。mysql5.7默认位置为:/etc/mysql/my.cnf

获取mysql5.7的my.cnf:

docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.7 && docker cp mysql-container:/etc/mysql/my.cnf ./ && docker rm -f mysql-container

3.创建.dockerignore文件

创建.dockerignore文件,将不需要build进镜像的文件夹或文件填写进去,如所属文件夹所有文件都需要build进镜像,则可以忽略此步骤。

4.创建dockerfile文件

创建文件dockerfile

[kewen@centos-62 new-mysql5.7]$ vim dockerfile

编辑dockerfile

# 基于官方的mysql5.7文件
FROM mysql:5.7

# 将数据库初始化文件复制到容器中
COPY init.sql /docker-entrypoint-initdb.d/

#  指定 MySQL 的配置文件
COPY my.cnf /etc/mysql/my.cnf

5. build成新镜像

[kewen@centos-62 new-mysql5.7]$ docker build -t chenkewen/mysql:5.7 .

6.查看新镜像

[kewen@centos-62 new-mysql5.7]$ docker image ls | grep chen
chenkewen/mysql                               5.7               7495f3060ad8   26 seconds ago   501MB

镜像可以push于docker hub,方便后续直接拉取使用。

docker push chenkewen/mysql:5.7

镜像也可以使用 docker save 存储,下次使用docker load -i加载使用

# 存储
[kewen@centos-62 new-mysql5.7]$ docker save chenkewen/mysql:5.7 -o chenkewen-mysql5.7.tar
[kewen@centos-62 new-mysql5.7]$ ls
chenkewen-mysql5.7.tar  dockerfile  init.sql  my.cnf


# 解压
[kewen@centos-62 new-mysql5.7]$ docker load -i chenkewen-mysql5.7.tar
Loaded image: chenkewen/mysql:5.7
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值