问题描述
使用docker创建mysql容器运行时,出现闪退问题。
指令:docker ps
内容:无
指令:docker ps -a
内容:
可以看出我们刚运行容器,容器就关闭了。
问题分析
我们通过日志输出,看一下问题出在哪里
我们可以看出,这里说
chown: changing ownership of ‘/var/lib/mysql/’: Permission denied
查阅资料后,发现
Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示上面的信息。
问题解决
我们可以将我们创建实例语句的容器名后面,添加一个-privileged=true的特定权限。
docker run -p 3306:3306 --name mysql --privileged=true \
-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.29
\ 是换行符
注意
要先删除之前已经创建好的mysql容器。
删除指令:docker rm 容器名
启动容器指令:docker start 容器名
关闭容器指令:docker stop 容器名