【Docker安装MySQL】

Docker安装MySQL

  • 加载镜像
  • 启动容器
  • 修改配置文件

加载镜像

离线方式
1.1 将离线镜像拷贝到服务器 /usr/local/images/目录下

mysql.tar

1.2 Docker加载本地MySQL镜像

docker load -i /usr/local/images/mysql.tar

在线方式
1.1 拉取镜像

docker pull mysql:5.7

检查镜像是否被加载

docker images

【Docker安装MySQL】_第1张图片

启动容器

命令说明:

docker run [Options] image

#参数说明
--name="名字"           指定容器名字
--restart=always	   设置容器自启动
-d                     后台方式运行
-it                    使用交互方式运行,进入容器查看内容
-p                     指定容器的端口
	-p ip:主机端口:容器端口  配置主机端口映射到容器端口
	-p 主机端口:容器端口(常用)
	-p 容器端口
-P                     随机指定端口
-e					   环境设置
-v					   容器数据卷挂载

启动mysql 设置密码、设置挂载数据卷

docker run \
-d \
-p 3306:3306 \
--name mysql5.7 \
--restart=always \
-v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -v /home/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=自己的密码 \
 mysql # 镜像名 默认是mysql:latest 其他版本需要选择自己的镜像版本 例如:mysql:5.7

我的启动案例:

docker run -p 13306:3306 --name mysql5.7 --restart=always  -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -v /home/mysql/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

检查MySQL是否启动成功

docker ps

进入容器命令说明:

docker exec -it 容器id/容器name /bin/bash

设置允许外部访问

#进入容器
docker exec -it mysql /bin/bash
#登录MySQL
mysql -uroot -proot
# 修改root 可以通过任何客户端连接
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

修改配置文件

1.查看一下容器绑定的配置文件目录

docker inspect 镜像ID

在这里插入图片描述

[atguigu@hadoop102 etc]$ sudo docker inspect 144

【Docker安装MySQL】_第2张图片
2.进入本地映射的配置目录,添加相应配置
1)进入本地映射的配置目录

[root@hadoop102 ~]# cd /home/mysql/conf/

2)添加相应配置

[root@hadoop102 conf]# vim my.cnf

3)重启MySQL

[root@hadoop102 conf]# docker restart 144
144

3.原理
进入mysql容器,查看默认的配置文件

sudo docker exec -it 144 /bin/bash
cat /etc/my.cnf

[mysqld]
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

请注意:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

在原来的基础上会加上 /etc/mysql/conf.d/的配置文件,重名的配置会被替换,未重名的会新增,所以进入到/etc/mysql/conf.d/映射的本地路径,就可以达到目的
4.验证
进入mysql执行如下命令:

show VARIABLES LIKE '%你设置的变量名%';

你可能感兴趣的:(Docker,docker,运维,mysql)