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添加規則,修改掛載目錄