掌握CentOS7环境下的Docker使用(四)docker快速部署mysql数据库并初始化

docker快速部署mysql数据库并初始化

下载镜像

docker pull mysql:5.7

在这里插入图片描述

启动 mysql服务器实例

docker官网地址:https://hub.docker.com/
在这里插入图片描述

搜索mysql,给出了启动一个mysql实例的方法:
在这里插入图片描述
在这里插入图片描述

docker run --name some-mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
密码可以自定义
在这里插入图片描述

进入容器:
docker exec -it 596f0dda975f /bin/bash

进入mysql:
在这里插入图片描述

初始化sql语句:

-- 建库
create database `db_student`;
SET character_set_client = utf8;
use db_student;
-- 建表
drop table if exists `user`;
CREATE TABLE user (
id tinyint(5) zerofill auto_increment not null comment '学生学号',
name varchar(20) default null comment '学生姓名',
age tinyint default null comment '学生年龄',
class varchar(20) default null comment '学生班级',
sex char(5) not null comment '学生性别',
unique key (id)
)engine=innodb charset=utf8;
-- 插入数据
insert into user values('1','小明','15','初三','男');
insert into user values('2','小红','13','初二','女');
insert into user values('3','小东','14','初一','男');
insert into user values('4','小西','12','初二','男');

在这里插入图片描述
在这个镜像是无法输入中文的

只有在进入容器时,使用:
docker exec -it 599dc0430348 env LANG=C.UTF-8 /bin/bash才能显示中文

dockerfile初始化新实例

在这里插入图片描述

我们可以通过自定义一个后缀为.sql或者.sh或者.sql.gz的文件,在/docker-entrypoint-initdb.d工作路径下编译完成初始化

创建init.sql文件:
将上面的sql语句插入到文件中

创建dockerfile:

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

构建镜像:
docker build -t df-mysql:5.7 .
在这里插入图片描述

启动并运行容器:
docker run --name some-dfmysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d df-mysql:5.7

进入容器:
docker exec -it b55e5b1b1fe3 /bin/bash

进入mysql验证:
在这里插入图片描述
初始化完成

可能遇到的问题

使用secureCRT输入中文乱码

在这里插入图片描述

进入容器显示bash-4.2#

在当前容器中执行:

cp /etc/skel/.bashrc /root
cp /etc/skel/.bash_profile /root

退出容器,重启容器,进入,恢复正常

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆两块钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值