docker启动mysql指定挂载目录时无法启动
运行环境:操作系统:centosdocker:1.13.1docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7执行上面...
运行环境:
操作系统:centos
docker:1.13.1
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
执行上面命令启动mysql时无法启动,使用
docker run -p 3306:3306 --name mymysql -it -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
使用-it模式启动也会直接退出,通过docker logs 退出的mysql容器id返回下面的提示信息:
chown: cannot read directory '/var/lib/mysql/': Permission denied
解决方案:
Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示
logs命令查看,发现提示信息是:chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied
解决方法有三个:
1.在docker run中加入 --privileged=true 给容器加上特定权限,如下
docker run --privileged=true -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
2.关闭selinux csdn
3.在selinux添加规则,修改挂载目录
笔者使用的是第1种解决方案
更多推荐
所有评论(0)