说明:Docker安装详见《docker的安装与更换yum源》教程
一、拉取Mysql镜像
1.1 查看mysql的docker镜像
docker search mysql
1.2 拉取tomcat镜像
1.2.1默认拉取最新版
docker pull mysql
1.2.2 拉取官方特定版本
点击进入docker查看[tag] https://hub.docker.com/
docker pull mysql:[tag]
docker pull mysql:8.0
1.2.3 拉取个人特定版本(阿里仓库)
- 登录阿里云Docker Registry
sudo docker login --username=白衣卿相2744 registry.cn-shanghai.aliyuncs.com
用于登录的用户名为阿里云账号全名
密码为开通服务时设置的密码(点击查看)
您也可以在访问凭证页面修改凭证密码。
- Registry中拉取镜像
sudo docker pull registry.cn-shanghai.aliyuncs.com/dockerbin/mysql:[镜像版本号]
二、启动Mysql
2.1 创建挂载目录
mkdir /usr/local/docker/mysql
2.2 复制挂载文件
2.2.1 可以通过本地文件直接复制
2.2.2 可以直接复制docker容器里的文件
- 先启动用于复制文件的docker_mysql 容器
sudo docker run -d -p 3305:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysqltest mysql:8.0
- 查看容器
docker ps
3. 复制容器中的文件到宿主机
可先进入容器查看
docker exec -it [ID] /bin/bash
将mysql文件夹拷贝到/usr/local/docker/mysql下,并命名为conf。注意:conf文件复制前不能存在
docker cp [ID]:/etc/mysql /usr/local/docker/mysql/conf
将mysql文件夹拷贝到/usr/local/docker/mysql下,并命名为data。注意:data文件复制前不能存在
docker cp [ID]:/var/lib/mysql /usr/local/docker/mysql/data
将mysql文件夹拷贝到/usr/local/docker/mysql下,并命名为logs。注意:logs文件复制前不能存在
docker cp [ID]:/var/log/mysql /usr/local/docker/mysql/logs
2.3 启动容器
2.3.1 启动mysql docker容器
此处应注意参数顺序
docker run \
-d \
-p 3306:3306 \
--name mysql \
-v /usr/local/docker/mysql/conf/:/etc/mysql/ \
-v /usr/local/docker/mysql/data/:/var/lib/mysq/ \
-e MYSQL_ROOT_PASSWORD=string@1307 \
--restart=always \
mysql:5.7 \
--lower_case_table_names=1
docker run -d -p 3306:3306 --name mysql -v /usr/local/docker/mysql/conf/:/etc/mysql/ -v /usr/local/docker/mysql/data/:/var/lib/mysq/ -e MYSQL_ROOT_PASSWORD=string@1307 --restart=always mysql:5.7 --lower_case_table_names=1
2.3.2 进入已启动的容器
docker exec -it [ID] /bin/bash
docker exec -it 6db /bin/bash
三、Mysql授权登录
3.1 登录mysql
mysql -uroot -p
3.2 授权远程登录
3.2.1分步命令
use mysql;
grant all privileges on *.* to root@'%' identified by "string@1307";
flush privileges;
3.2.2 命令合集
use mysql;
grant all privileges on *.* to root@'%' identified by "string@1307";
flush privileges;
3.3 验证连接
3.3.1 使用工具验证连接
3.3.2 验证大小写敏感
show variables like 'lower%';