问题描述:
关于我在学习docker中遇到的坑,原因是视频中用的mysql镜像是5.7,我用的是8.0以上(8.0.16)
错误代码
原因分析:
从第三步开始看,一步步分析,直接看解决方法
1、拉取镜像
我拉取的是8.0以上的,所以就遇到了这个坑
docker pull mysql:8.0.16
2、查看镜像
docker images
3、运行容器
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:8.0.16
运行后能看到容器id,但用docker ps查看却是空的
4、查看容器
docker ps
5、查看所有容器
docker ps -a
6、查看日志分析
docker logs 容器id
7、原因
- 运行容器时mysql的配置位置错误
- mysql5.7的配置在 /etc/mysql
- mysql8.0以上的配置位置在 /etc/mysql/conf.d
- 按mysql版本修改一下配置位置就可以了
解决方案:
1、删除容器
docker rm 容器id或名字
2、修改运行容器的配置
conf配置按下图修改
/mydata/mysql/conf:/etc/mysql
||
||
||
\/
/mydata/mysql/conf:/etc/mysql/conf.d
3、重新运行
总结:
- mysql8.0以上配置
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/conf.d \
-e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.16
- mysql5.7配置
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