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


1.entos7下docker Permission denied

在centos的docker上安裝mysql提示chown mod /var/lib/mysql permission denied,通過下面的方法1解決。 

在centos上掛載數據卷,在容器內部訪問數據卷的時候報permission denied出錯,通過下面的方法1解決。

1.Centos7安全Selinux禁止了一些安全權限,導致mysql和mariadb在進行掛載/var/lib/mysql的時候會提示如下信息:

1 [root@localhost mariadb]# docker run -d  -v ~/mariadb/data/:/var/lib/mysql -v ~/mariadb/config/:/etc/mysql/conf.d  -e MYSQL_ROOT_PASSWORD=‘123456‘ test01/mariadb
2 19c4aa113c610f53f9720ee806e3c918dd18d21dff75c043bdd6db60011a135d
3 [root@localhost mariadb]# docker ps -a
4 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                                       NAMES
5 19c4aa113c61        test01/mariadb      "docker-entrypoint.sh"   4 seconds ago       Exited (1) 1 seconds ago                                               desperate_kelle

logs命令查看,發現提示信息是:chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied

於是,解決方法有這么三個:

  1. 在docker run中加入 --privileged=true  給容器加上特定權限
  2. 關閉selinux
  3. 在selinux添加規則,修改掛載目錄de

2. 有時候,在啟動帶有端口映射的容器時候,會出現如下提示:

1 iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 52080 -j DNAT --to-destination 192.168.20.22:52080 ! -i docker0: iptables: No chain/target/match by that name

這玩意,查來查去也沒給解釋,參考了下http://www.lxy520.net/2015/09/24/centos-7-docker-qi-dong-bao/,這篇文章說要修改iptables的文件,只是centos7有可能根本就沒有這個文件,或者沒有裝iptables的服務,結果最后重啟宿主機,恢復了,期間嘗試使用firewall-cmd命令查詢,和停止防火牆。此思路供后人參考。

2.查看 SELinux狀態及關閉SELinux

 方法:

1.查看SELinux狀態
sestatus -v
getenforce

2.臨時關閉SELinux
setenforce 0


免責聲明!

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



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