Docker的mysql镜像_Docker创建自定义的Mysql镜像和容器

[TOC]

一、编写配置文件准备

1.准备创建数据的脚本文件

本实例准备了一个创建数据的脚本文件,包含了创建表,没有初始化数据的内容。

脚本名称:aa.sql

脚本内容:

CREATE DATABASE IF NOT EXISTS `dev_yxywg`;

USE `dev_yxywg`;

DROP TABLE IF EXISTS `aa`;

CREATE TABLE `aa` (

`sync_pk` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL ,

`hos_code` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,

`create_time` varchar(19) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,

`study_iuid` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,

`study_content` mediumtext COLLATE utf8mb4_unicode_ci ,

`study_state` int(255) DEFAULT NULL

`remark` varchar(1024) COLLATE utf8mb4_unicode_ci DEFAULT NULL ,

PRIMARY KEY (`sync_pk`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ;

2.编写一个Shell脚本

这个脚本主要实现初始化创建数据库,表结构SQL文件的读取

脚本名称:install_data.sh

脚本内容:

#!/bin/bash

mysql -uroot -p$MYSQL_ROOT_PASSWORD <

source $WORK_PATH/$FILE_0;

3.编写构造镜像的Dockerfile

-文件名称:Dockerfile

-文件内容:

# Docker image of image-gateway mariaDB

# VERSION 0.0.1

# Author: zhangyongliang

#基础镜像使用mariaDB最新版

FROM mariadb:latest

#作者

MAINTAINER ZhangYongliang

#定义工作目录

ENV WORK_PATH /usr/local/work

#定义会被容器自动执行的目录

ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d

#定义sql文件名

ENV FILE_0 aa.sql

#定义shell文件名

ENV INSTALL_DATA_SHELL install_data.sh

#创建文件夹

RUN mkdir -p $WORK_PATH

#把数据库初始化数据的文件复制到工作目录下

COPY ./$FILE_0 $WORK_PATH/

#把要执行的shell文件放到/docker-entrypoint-initdb.d/目录下,容器会自动执行这个shell

COPY ./$INSTALL_DATA_SHELL $AUTO_RUN_DIR/

#给执行文件增加可执行权限

RUN chmod a+x $AUTO_RUN_DIR/$INSTALL_DATA_SHELL

二、 构造镜像

1.执行构造镜像

将上述的文件上传到具有Doc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值