坑(十八)—— docker启动容器时挂载没有权限问题

docker启动容器时挂载没有权限问题

复现

centos 7系统

docker run ......

出现一下错误:

docker chown: changing ownership of '/var/lib/XXX': Permission denied

原因

Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会出现没有权限的问题

解决方法

有三种方式:

  • 在docker run中加入 --privileged=true 给容器加上特定权限

    • container内的root只是外部的一个普通用户权限
    • --privileged=true使container内的root拥有真正的root权限
  • 关闭selinux

    • 查看SELinux状态

      • /usr/sbin/sestatus -v :如果SELinux status参数为enabled即为开启状态
      • getenforce :也可以用这个命令检查
    • 临时关闭(不用重启机器):

      • setenforce 0
    • 永久关闭(需要重启机器)

      • 修改/etc/selinux/config 文件

      • SELINUX=enforcing改为SELINUX=disabled

  • 在selinux添加规则,修改挂载目录

博客内容仅供参考,部分参考他人优秀博文,仅供学习使用
原文地址:https://www.cnblogs.com/linagcheng/p/14655026.html