掌握CentOS7环境下的Docker使用(四)docker快速部署mysql数据库并初始化
创始人
2025-05-29 09:15:36

文章目录

  • docker快速部署mysql数据库并初始化
  • 下载镜像
  • 启动 mysql服务器实例
  • dockerfile初始化新实例
  • 可能遇到的问题
    • 使用secureCRT输入中文乱码
    • 进入容器显示`bash-4.2#`

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

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

相关内容

热门资讯

鸟哥的Linux私房菜 She... 第十二章、学习 Shell Scripts https://linux.vbird.org/linu...
2分钟快速了解!全网最详细的性...  目录:导读 Redis 简介 Redis 优势 Redis与其他key-value存...
设计模式-02 4,创建型模式 4.2 工厂模式 4.2.1 概述 需求:设计一个咖啡店...
纠错码中的汉明码,NAND F...      纠错码是一种用在不可靠的或者噪音比较大的通信信道中用来控制数据传输错误的技术。这种技术的核...
【Java】P14 面向对象(... 类的封装性封装性高内聚与低耦合何为封装性如何封装get 与 set 方法案例 封装性 高内聚与低耦...
【FPGA】Xilinx Co... 功能描述 1、Rotate Rotate 实现的功能是坐标的旋转。 输入 X, Y, Phase 输...
【Pytorch】使用Pyto... 文章目录1. 题目描述2. 代码实现验证写在最后 1. 题目描述 在这个例子中网络结构如下所示&#...
client-go disco... 1. 概述 discovery包主要用来发现服务器支持的API组、版本和资源的方法,及...
[LeetCode周赛复盘] ... [LeetCode周赛复盘] 第 100 场双周赛20230318 一、本周周赛总结二、 [Easy...
Matlab基础教学入门 Matlab是一种非常强大的数学计算工具,广泛应用于科学和工程领域。本篇文章将介绍一些...
设计模式-02 4,创建型模式 4.2 工厂模式 4.2.1 概述 需求:设计一个咖啡店...
条款21:优先考虑使用std:... 让我们先对std::make_unique和std::make_shared做个铺垫。std::ma...
Leetcode 第四天 动态... 来源:力扣(LeetCode) 链接:htt...
MongoDB用户管理授权 文章目录1 角色类型2 注意事项3 给单个数据库授权4 给一个用户授权多个数据库5 其它命令 1 角...
下载、安装JDK、sublim... 直接官网下载,jdk8或者jdk11。配置环境变量:如果不配置环境变量&...
算法的时间复杂度介绍 本文主要算法时间复杂度的相关知识。1 概述算法(Algorithm)是指...
编码方式概括 1.三种码表1.iso8859-1码表:是一种8位的单字节编码方式。它可以表示256个...
YOLOv5源码逐行超详细注释... 前言  本篇文章主要是对YOLOv5项目的验证部分。这个文件之前是叫test.py,后...
centos docker 安... 1、首先安装docker 下面是一键安装脚本 curl -fsSL https://get.dock...
线上操作规范 1.目的    1)为了避免测试线上随意操作给客户造成损失   2)为了...
查找算法之费氏搜寻法 给定一个大小为n的排序数组arr[],并在其中搜索一个元素x。如果x在数组中ÿ...
cv2报错:Unsupport... cv2 报错 error: OpenCV(4.6.0) /io/opencv/modules/img...
DVWA_xss 反射型xsslow直接在输入框输入提前准备的代码,就可以得到回显cookie信息 Me...
音视频开发编程技术(二):音频... 1. 音频简介   上一节讲过,视频的帧率即每秒钟采集多少张图片的概念。同理ÿ...
【Java学习笔记】33.Ja... 前言 本章介绍Java的HashSet及HashMap。 Java HashSet HashSet ...
RabbitMQ基础介绍及同步... 一、同步通讯与异步通讯 大多数情况下会使用同步,对并发没有很高的要求,但...
面试官:整理了一些react的... 请解释一下React生命周期。它们各自的作用是什么? React生命周期是指组件从创建...
【C++进阶】AVL树的实现 文章目录AVL树概念AVL树性质AVL树节点的结构AVL树的插入插入新节点更新整体节点的平衡因子旋转...
缺失的第一个正整数:给定一个未... 给定一个未排序的整数数组,找出其中未出现的最小正整数。 (本文获得CSDN质量评分...
[架构之路-141]-《软考-... 前言:如何“从无到有”设计一个企业信息系统?本文将探索这个话题。第1章 ...