關於docker容器啟動時沒有權限出現錯誤:chown: changing ownership of '/var/lib/mysql/': Permission denied


一、出現問題

一、報錯情況

在未關閉selinux時輸入創建docker容器命令

docker run --name mysql -p 3306:3306 -v /etc/mysql:/var/lib/mysql -v /etc/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD='root' --restart=always -d mysql:5.7.37 

報錯

 

 二、解決思路

映射時宿主機的地址為/etc/mysql,容器的地址為/var/lib/mysql,報錯情況顯示的是對於docker容器里面的/var/lib/mysql沒有讀寫操作權限,是由於在這個mysql容器中,它的所有者是mysql,而我們使用的docker  run命令的在宿主機上操作的是root用戶,而在docker容器里面宿主機的root用戶只是相當於普通用戶,而沒有root用戶的那種權限。

解決方法:

1.在使用docker  run命令的時候將“--privileged=true” 這個參數添加

如:

docker run --name mysql  --privileged=true -p 3306:3306 -v /etc/mysql:/var/lib/mysql -v /etc/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD='root' --restart=always -d mysql:5.7.37 

注意:docker有比較強的命令規范性

只能將--privileged=true這個參數寫在拉取鏡像前面即   -d  前面

而不能寫在后面,寫在后面會報錯如下

 

 2.永久性解決,直接關閉電腦的selinux

修改/etc/selinux/config文件中的SELINUX="" 為 disabled ,然后重啟。

不想重啟就使用這條命令

setenforce 0

或者使用命令

sed -i 's/enforcing/disabled/'  /etc/selinux/config

再使用命令

setenforce  0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM