docker安装mysql和数据挂载

说明:这里本文小结在docker里面安装mysql并且配置其编码集为utf8,并将MySQL容器的部分文件映射到Linux主机

小编使用的环境
Linux虚拟机centos7(vagrant)
MySQL安装为5.7版本(可以自己选择版本)
使用了阿里云镜像加速


下面是小编整理的文章需要自行查看:
安装centos7安装docker并使用阿里云镜像加速


一、安装mysql镜像

docker官网安装镜像的入口

  • 一些常用的命令
    权限不够加sudo或者切换到root用户命令su root

查看运行的容器:docker ps
进入mysql容器: docker exec -it mysql /bin/bash
查看拉取的镜像:docker images
启动mysql容器:docker strat mysql
退出容器:exit

  • 打开docker官网搜索mysql
  • 如图

点击进入mysql进去就可以看见安装命令和mysql的版本

开始拉取MySQL镜像

安装最新版本的命令:sudo docker pull mysql
安装指定版本的命令例如:sudo docker pull mysql:5.7

版本图

docker mysql数据库卷挂载 docker mysql 挂载_docker

这边附上小编安装的图示:

docker mysql数据库卷挂载 docker mysql 挂载_docker_02

  • 这样mysql就安装完成了

使用数据卷(数据挂载)

使用这条命令(命令最后一行-d mysql自行指定你安装mysql)

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

参数说明

-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root

简单的说就是在虚拟机主机创建出
/mydata/mysql/conf
/mydata/mysql/log
/mydata/mysql/data
3个多级目录和mysql容器里面的目录对应起来,以后就无需在进入mysql容器编辑和查看数据,在我们创建的目录操作和参看即可
我们也称其为数据卷或者数据挂载

数据挂载完整后我们将mysql的字符集修改为utf8

  1. 第一步: cd /mydata/mysql/conf/
  2. 第二步:vi my.cnf

my.cnf文件的内容如下

  • 参数skip-name-resolve:跳过域名解析/解决 MySQL 连接慢的问提
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

说明:按i进如编辑模式,按esc退出编辑模式,在同时按(shift:)最后输入wq,保存退出
如图(权限不够就加sudo):

docker mysql数据库卷挂载 docker mysql 挂载_docker mysql数据库卷挂载_03


最后我们重启mysql

docker restart mysql(我的容器名称为mysql)
我们在本地就可以使用navicat来连接我们安装好的mysql了

配置下自启动

sudo docker update 名称  --restart=always

例如mysql:
sudo docker update mysql --restart=always

注明:mysql8的安装配置文件有些变化。配置文件有些变动

三、容器自启动

sudo docker update 容器名称 --restart=always

例如:
sudo docker update redis --restart=always

sudo docker update mysql --restart=always