使用docker安装mysql
Posted 爱上口袋的天空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker安装mysql相关的知识,希望对你有一定的参考价值。
1:通过docker下载指定版本的mysql
命令:
sudo docker pull mysql:5.7
2: 查看下载的镜像
命令:
sudo docker images
3: 使用root用户创建实例并启动mysql
命令:
docker run -p 3306:3306 --privileged=true --name mysql \\
-v /mydata/mysql/log:/var/log/mysql \\
-v /mydata/mysql/data:/var/lib/mysql \\
-v /mydata/mysql/conf:/etc/mysql/conf.d \\
-e MYSQL_ROOT_PASSWORD=root \\
-d mysql:5.7
参数说明:
-p 3306:3306 表示将容器(创建的mysql容器)的3306端口映射到主机(centos7)的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用户的密码
--name mysql 为容器指定名称为mysql
-d mysql:5.7 后台运行名称为mysql,版本为5.7的镜像
注意:
上面-v挂载的文件夹内容,镜像容器都会同步到centos7对应的挂载目录/mydata/mysql/下,可以到centos7环境中查看,
修改centos7环境中对应目录下的配置文件,mysql对应的挂载目录文件也会变化
4:查看正在运行的镜像容器
命令:
docker ps
5: 使用客户端去链接一下
信息:
ip地址(centos7容器配置的ip地址): 192.168.56.10
端口号:3306
用户名密码: root/root
6: 我们启动的mysql是一个完整的运行环境,可以把它看成一个完整的linux,如下我们可以进入到mysql内部
1):进入mysql内部的命令(下面表示进入到容器的/bin/bash目录下)
docker exec -it 容器ID /bin/bash
2):进入后可以使用linux命令操作,
例如:
查看目录结构:ls /
查看mysql的安装目录:whereis mysql
7:修改mysql的字符编码
1):进入我们centos7的挂载目录(需要新建my.cnf)
cd /mydata/mysql/conf
vi my.cnf
2):my.cnf的内容如下
[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
8:重启mysql
docker restart mysql(创建的容器名称)
9:最后进入到mysql容器中,查看对应的挂载目录/etc/mysql中是否有my.cnf文件
docker exec -it mysql /bin/bash
cd /etc/mysql
ls
10:设置容器开机自动启动
命令:
sudo docker update 容器名称 --restart=always
sudo docker update mysql --restart=always
11、如果mysql连接不上有可能是宿主机路由的问题
我们路由没开的话就会导致宿主机于容器实例网络隔绝,所以是要打开的
1)查看路由是否打开
sysctl net.ipv4.ip_forward #返回值为1代表路由已开启,为0就是未开启
2)开启路由
echo “net.ipv4.ip_forward = 1” >>/etc/sysctl.conf #将命令写入到/etc/sysctl.conf文件中 sysctl -p #加载内核 sysctl net.ipv4.ip_forward #再次查看路由是否开启
以上是关于使用docker安装mysql的主要内容,如果未能解决你的问题,请参考以下文章