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

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

创建一个含有初始化数据库的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.7
WORKDIR /docker-entrypoint-initdb.d
ENV LANG=C.UTF-8
ADD 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镜像进行数据库初始化并生成镜像


参考:[https://blog.csdn.net/yu1014745867/article/details/113884953](https://blog.csdn.net/yu1014745867/article/details/113884953)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5720250.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存