今天在做项目的时候,使用docker 拉取mysql:5.7并创建容器运行时,发现容器是创建起来了但是并没有运行起来。如下图:
出现了闪退的情况
然后我查了一下mysql日志:
命令如下:
docker logs --tail 50 --follow --timestamps mysql
具体错误如上:Can‘t read dir of ‘/etc/mysql/conf.d/
出现这个的原因是:因为Centos7安全Selinux禁止了部分安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示上面的信息
所以真正解决该问题的方法就是:既然不能read取到需要都的文件,那我们就给这个目录及文件创建出来:命令如下:
sudo mkdir /etc/mysql/conf.d
但是可能很多人又会出现以下错误:
原因是mysql目录不存在
此时应加上参数-p,即没有找到此目录就自动创建:
sudo mkdir -p /etc/mysql/conf.d
然后再使用如下命令创建容器并运行:
sudo docker run --privileged=true \ -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
来源地址:https://blog.csdn.net/m0_56044033/article/details/128387382