1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 创建一个含有初始化数据库的mysql docker镜像

创建一个含有初始化数据库的mysql docker镜像

时间:2019-09-30 21:49:40

相关推荐

创建一个含有初始化数据库的mysql docker镜像

创建一个含有初始化数据库的mysql docker镜像

一、准备一个用于数据库初始化的.sql文件二、编写Dockerfile文件三、编译Dockerfile文件1.在Dockerfile所在目录下,按住< Shift >键,然后右键,点击“在此处打开Powershell”,在powershell中使用以下命令:2.此时查看docker,可以在images里看到刚才创建的镜像了: 四、测试1.使用以下命令创建一个容器进行测试:2.然后这个终端会被阻塞,这时候打开另一个终端,使用以下命令进入这个容器:3.进入容器后,在容器里,使用以下命令,然后输入刚才设置的密码即可进入mysql:4.然后使用以下sql语句定位到test数据库:5.在使用以下sql语句后我们可以看到这个test数据库中user表中之前初始化的数据: 总结

一、准备一个用于数据库初始化的.sql文件

文件示例如下:

init.sql:

-- 建库create database `test`;-- 设置字符集SET character_set_client = utf8;-- 使用这个数据库use test;-- 建表create table user(`id` int(4) primary key,`name` varchar(20))engine=innodb charset=utf8;-- 数据初始化insert into user values(1,'小明');

二、编写Dockerfile文件

Dockerfile:

FROM mysql:5.7WORKDIR /docker-entrypoint-initdb.dENV LANG=C.UTF-8ADD init.sql .

FROM mysql:5.7表示从mysql的5.7版本镜像做改动WORKDIR /docker-entrypoint-initdb.d表示工作目录在/docker-entrypoint-initdb.d,这个文件夹是mysql用于存放初始化文件的文件夹,等会需要把刚才准备的init.sql文件放进去ENV LANG=C.UTF-8防止中文乱码问题**ADD init.sql .**把init.sql文件放到当前目录(前面设置了WORKDIR工作目录即为当前目录),所以mysql可以通过这个init.sql文件进行数据库的初始化。(注意!!!init.sql后面有【空格 + .】

三、编译Dockerfile文件

注意!!!!Dockerfile需要和init.sql在同一地址下!!!

1.在Dockerfile所在目录下,按住< Shift >键,然后右键,点击“在此处打开Powershell”,在powershell中使用以下命令:

docker build -t <镜像名字> .

注意!!!!这里镜像名字后面还有【空格 + .】

我这里将镜像取名为“testimage”,所以我使用:

docker build -t testimage .

2.此时查看docker,可以在images里看到刚才创建的镜像了:

也可以使用以下命令看到这个镜像:

docker images

四、测试

1.使用以下命令创建一个容器进行测试:

docker run -e MYSQL_ROOT_PASSWORD=<数据库root用户的密码> <容器名称>

MYSQL_ROOT_PASSWORD是创建mysql容器必有的环境变量参数

我这里设置密码为123456,容器名称为testimage,所以我使用:

docker run -e MYSQL_ROOT_PASSWORD=123456 testimage

2.然后这个终端会被阻塞,这时候打开另一个终端,使用以下命令进入这个容器:

docker exec -it <容器名称> bash

我这里刚刚创建的容器名称叫做testimage,所以我使用:

docker exec -it testimage bash

3.进入容器后,在容器里,使用以下命令,然后输入刚才设置的密码即可进入mysql:

mysql -uroot -p

4.然后使用以下sql语句定位到test数据库:

use test;

5.在使用以下sql语句后我们可以看到这个test数据库中user表中之前初始化的数据:

select * from user;

总结

编写.sql文件用于初始化,编写Dockerfile对某个已有的mysql镜像进行数据库初始化并生成镜像


参考:[/yu1014745867/article/details/113884953](/yu1014745867/article/details/113884953)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。