[mysql/docker] 基于Docker安装MYSQL
0 序
- 虽然关于 mysql 安装的教程,先前已写过很多期了(参见如下列表),但这期的安装教程所依赖的环境还是大有不同的————基于 docker 环境。
docker/k8s虚拟化/容器技术 的出现,大大提升了安装部署的效率。与环境的解耦,以此成倍数地提升软件交付/软件部署的效率,是它最大的功绩。好了,进入正题。
os: centos 7这一点,无需关心,因为绝大多数情况下, docker 镜像的使用者可以不太关心外部依赖(包括:操作系统)
docker版本 : 25.0.3不懂 docker 的同志,请参见:
mysql镜像 : 5.7

2 安装步骤
Step1 安装 docker | 基于 centos 7
可参见本文
- 安装 docker 镜像
yum -y update
yum remove docker docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum -y install docker-ce-25.0.3-1.el7
- 查看 docker 版本
docker version

- 启动/查看/开机自启动 docker 进程
systemctl start docker
systemctl status docker
# 开机自启动
systemctl enable docker

Step2 安装 mysql | 基于 centos 7 + docker 25.0.3
- 下载镜像
docker pull mysql:5.7
# docker pull mysql:8

- 查看(下载的)镜像
docker images

- 创建数据存储目录
此举是为了避免mysql镜像停止运行后数据丢失,做到存算分离。
- /data/mysql/log:/var/log/mysql
- /data/mysql/data:/var/lib/mysql
- /data/mysql/conf.d:/etc/mysql/conf.d
- /data/mysql/my.cnf:/etc/my.cnf
mkdir -p /data/mysql/log
mkdir -p /data/mysql/data
mkdir -p /data/mysql/conf.d
touch /data/mysql/my.cnf
ls /data/mysql
- 设置 mysql root 用户密码
MYSQL_ROOT_PASSWORD=123456
echo ${MYSQL_ROOT_PASSWORD}
- 创建、并启动容器
docker run --name mysql \
--restart=always \
-p 3306:3306 \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf.d:/etc/mysql/conf.d \
-v /data/mysql/my.cnf:/etc/my.cnf \
-e MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} \
-d mysql:5.7
注:第1个
3306端口:是指宿主机的映射端口
注:第2个3306端口:是指容器的被映射端口

- 查看容器
docker ps -a
netstat -lntp | grep -i 3306


Step3 测验:在宿主机中执行 mysql 容器 的 命令
- 方法1
docker exec -it mysql bash
> mysql -uroot -p${MYSQL_ROOT_PASSWORD} --port=3306 -h127.0.0.1 -e 'show databases;'
> exit

注:
MYSQL_ROOT_PASSWORD也是 mysql container 的内置环境变量
- 方法2:
docker exec -it mysql sh -c "mysql -uroot -p${MYSQL_ROOT_PASSWORD} --port=3306 -h127.0.0.1 -e 'show databases;'"

X 参考文献/推荐文献
- Docker / Docker Compose
- mysql 安装教程
- mysql 使用
- 其他
[mysql/docker] 基于Docker安装MYSQL的更多相关文章
- Docker——基于Docker安装Drupal博客系统
Docker--基于Docker安装Drupal博客系统 向脚本文件追加内容 cat << EOF > build.sh #设置主机名 hostnamectl set-hostnam ...
- debian系列下c++调用mysql, linux下面安装mysql.h文件
mysql.h的报错还没有解决,你们不用看了,等我解决了吧还不知道什么时候 先用c吧 #include <stdio.h> #include <stdlib.h> #inclu ...
- docker - 容器里安装mysql
在docker中安装mysql ubuntu官方镜像是精简的ubuntu系统,很多软件和库没有安装,所以直接安装mysql的话依赖较多,建议直接从源码编译安装mysql 通过命令行安装 先启动一个容器 ...
- docker学习4-docker安装mysql环境
前言 docker安装mysql环境非常方便,简单的几步操作就可以了 拉取mysql镜像 先拉取mysql的镜像,可以在docker的镜像仓库找到不同TAG标签的版本https://hub.docke ...
- Docker通过挂载安装mysql
一.安装 mkdir -p ./docker/mysql cd docker/ cd mysql/ mkdir conf mkdir data mkdir logs mkdir mysql-file ...
- Docker容器手动安装mysql(国内镜像)
Docker手动安装mysql 1.创建centos镜像的容器 [root@localhost Tools]# docker run -i -d -h zabbix --name zabbix -p ...
- Docker学习之安装mysql
1.从Docker检索mysql镜像 指令: docker search mysql 2.镜像下载 指令: docker pull mysql:5.7.19 3.查看本地镜像列表 指令: docker ...
- 使用docker 基于centos7制作mysql镜像
说明:由于业务需要使用centos7.6+mysql5.7+jdk8以及其他的java程序,本想在网上找一个现成的,发现镜像都不适合我. 一.yum方式安装mysql 1.编写dockerfile文件 ...
- 基于镜像安装mysql
准备目录 cd /opt mkdir -p mysql/data mysql/logs mysql/conf 查找MySql镜像版本 docker search mysql 安装指定版本的mysql镜 ...
- Flask+Mysql搭建网站之安装Mysql
安装Mysql # sudo apt-get install mysql-server 安装过程需要输入root密码,这个密码是mysql 的root密码,之后连接mysql会用到,这个要记住. 安装 ...
随机推荐
- 小知识:MySQL修改lower_case_table_names参数
环境:MySQL 5.7.25 起初创建环境时没有要求表名称不区分大小写,后续应用使用提出要设置lower_case_table_names=1的需求,期望表名不再区分大小写. 修改这个参数需要重启实 ...
- NC15434 wyh的迷宫
题目链接 题目 题目描述 给你一个n*m的迷宫,这个迷宫中有以下几个标识: s代表起点 t代表终点 x代表障碍物 .代表空地 现在你们涵哥想知道能不能从起点走到终点不碰到障碍物(只能上下左右进行移动, ...
- android mvvm实例解析
MVVM架构,将整个应用分为三层,View层,VM层,Model层.其中View层单向引用VM层,VM层单向引用Model层.如上图. 单向引用,而非双向引用,这是MVVM与MVP最大的区别.View ...
- sensitive-word-admin v1.3.0 发布 如何支持敏感词控台分布式部署?
拓展阅读 sensitive-word-admin v1.3.0 发布 如何支持分布式部署? sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word ...
- 从零开始手写 redis(四)监听器的实现
前言 java从零手写实现redis(一)如何实现固定大小的缓存? java从零手写实现redis(三)redis expire 过期原理 java从零手写实现redis(三)内存数据如何重启不丢失? ...
- look命令
look命令 look命令用于查询单词,仅需指定欲查询的字首字符串,它会显示所有开头字符串符合该条件的单词. 语法 look [-bdf] [-t char] string [file ...] 参数 ...
- 2021 虎符杯hate num 注入题
前言 今天遇到个有意思的SQL盲注,花了不少功夫,也学到了新姿势,遂记录下来以备后续碰到相同场景使用. 题目 这是2021 虎符杯的一道web题,有一个目标站点且附带了源码. 源码内容包括: 主要逻辑 ...
- 谈一谈如何使用etcd中的事务
本文内容来源于自己学习时所做的记录,主要来源于文章最后的参考链接,如有侵权,请联系删除,谢谢! etcd 是一个 key/value 类型的数据库.既然我们需要存储数据,必然会面临这样一个需求,即希望 ...
- SSH不对称密钥自动登入服务器
SSH不对称密钥自动登入服务器 1.先在自己的电脑上创建密钥对 ssh-keygen -t rsa Windows下生成SSH密钥 $ ssh-keygen -t rsa -C "youre ...
- 在Vue中使用Canvas绘制背景
好家伙, 在vue中使用canvas绘制与在html中使用canvas绘制大致相同, 但又有所区别 法一(无图片资源): vue中canvas的使用 - 掘金 (juejin.cn) 找到canca ...