docker安装mysql和数据挂载
说明:这里本文小结在docker里面安装mysql并且配置其编码集为utf8,并将MySQL容器的部分文件映射到Linux主机
小编使用的环境
Linux虚拟机centos7(vagrant)
MySQL安装为5.7版本(可以自己选择版本)
使用了阿里云镜像加速
下面是小编整理的文章需要自行查看:
安装centos7安装docker并使用阿里云镜像加速
一、安装mysql镜像
- 一些常用的命令
权限不够加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
版本图
这边附上小编安装的图示:
- 这样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
- 第一步: cd /mydata/mysql/conf/
- 第二步: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):
最后我们重启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