关于我在学习docker中遇到的坑,原因是视频中用的mysql镜像是5.7,我用的是8.0以上(8.0.16)
错误代码
原因分析:
从第三步开始看,一步步分析,直接看解决方法
1、拉取镜像我拉取的是8.0以上的,所以就遇到了这个坑
docker pull mysql:8.0.162、查看镜像
docker images3、运行容器
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 ps5、查看所有容器
docker ps -a6、查看日志分析
docker logs 容器id7、原因
- 运行容器时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.d3、重新运行 总结:
- 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



