#搜了几篇文章都说是文件权限问题,后面仔细检查发现并不是。
#在拉取了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
#执行docker ps发现正在运行的容器为空,使用docker ps -a查看容器已经创建成功,但在创建好之后就退出了
#这时候查看容器日志
docker logs mysql
发现报错信息如下:
从上面报错信息可以看出 mysqld: Can't read dir of '/etc/mysql/conf.d/' (无法读取/etc/mysql/conf.d/目录)。这样就知道原因了,mysql找不到conf.d目录。所以启动容器时指定到conf.d目录
#修改命令:
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:5.7
#最终容器成功创建,docker ps查看正在运行的容器