docker容器 挂载目录 Permission denied

docker | 2021-08-17 10:41:56

1.问题

docker 运行容器 挂载目录

docker stop mysql57
docker rm mysql57
docker run --name mysql57  -v /home/server/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

查看日志

# docker logs -f mysql57

2021-08-17 02:13:17+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.35-1debian10 started.
2021-08-17 02:13:17+00:00 [ERROR] [Entrypoint]: mysqld failed while attempting to check config
        command was: mysqld --verbose --help --log-bin-index=/tmp/tmp.a2UIfpoXaX
        mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 13 - Permission denied)
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!

2.问题原因

Selinux安全权限问题

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。

 

3.解决方法

docker run来运行容器时, 加上 --privileged=true

docker run --name mysql57 --privileged=true -v /home/server/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

 

 

登录后即可回复 登录 | 注册
    
关注编程学问公众号