刚刚学习使用docker,做一个小实践,记录一下重点过程和遇到的问题,以便后续回顾。
1、使用docker拉取镜像至本地
docker pull mysql:8.0
2、查看拉取后镜像
docker images
3、启动容器
docker run \
-p 3306:3306 \
--name mysql2 \
-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='自己的密码' \
mysql:8.0
4、查看容器启动状态
docker ps -a
5、进入容器
docker exec -it mysql2 /bin/bash
6、mysql登录
mysql -uroot -p
输入前面启动容器设置的密码
7、连接测试mysql
操作系统ip可以在容器外面使用命令获取
ip addr
7.1、没问题就成功,若有以下问题需进一步解决
7.2、切换数据库
use mysql
7.3、检查数据库,注意root是否为%(代表是否可以远程连接)
select user,host from user;
7.4、设置密码永不过时(似乎对解决2059问题并不关键,不确定是否可以省略)
ALTER USER root@'%' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER;
7.5、设置密码加密模式(关键步骤)
ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
7.6、再次测试,即可成功
8、总结:
docker部署mysql确实方便,省略很多麻烦的步骤,后续准备学习docker部署其他应用,以及使用dockerfile自定义镜像,尝试部署分布式项目