docker 命令報異常permission denied的解決方案

在Linux系統中,新安裝docker,輸入命令,如:docker images

結果卻報異常瞭

簡單理解就是當前用戶的連接被拒絕瞭

解決方案一:

使用管理員權限,命令前加sudo

解決方案二:

給當前用戶加入到docker用戶組中

sudo groupadd docker #添加docker用戶組,這個用戶組應該是已存在瞭
sudo gpasswd -a $USER docker #將當前用戶加入到docker用戶組中
newgrp docker #更新用戶組docker

再執行 docker images

這個就可以正常使用瞭

補充:Docker -v 對掛載的目錄沒有權限 Permission denied解決辦法

情況描述

今天在使用docker run -d -p 9091:8080 -v /home/daniu/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ –name managertomcat daniu/mytomcat

掛載路徑後,進入容器

[email protected]:/usr/local/tomcat# cd webapps/
[email protected]:/usr/local/tomcat/webapps# ls
ls: cannot open directory '.': Permission denied
[email protected]:/usr/local/tomcat/webapps# 

查看webapps提示沒有權限。

原因:

centos7中安全模塊selinux把權限禁掉瞭。

有三種方法解決:

1.在運行時加 –privileged=true

[[email protected] tomcat]$ docker run -d -p 9091:8080 -v /home/daniu/docker/tomcat/webapps/:/usr/local/tomcat/webapps/ --privileged=true --name managertomcat xuhaixing/mytomcat
c512137b74f3366da73ff80fc1fd232cc76c95b52a4bab01f1f5d89d28185b28
[[email protected] tomcat]$ ls

2.臨時關閉selinux然後再打開

[[email protected] tomcat]# setenforce 0
[[email protected] tomcat]# setenforce 1

3.添加linux規則,把要掛載的目錄添加到selinux白名單

# 更改安全性文本的格式如下
chcon [-R] [-t type] [-u user] [-r role] 文件或者目錄
選頃不參數: 
-R :該目錄下的所有目錄也同時修改; 
-t :後面接安全性本文的類型字段,例如 httpd_sys_content_t ; 
-u :後面接身份識別,例如 system_u; 
-r :後面街覘色,例如 system_r
執行:
chcon -Rt svirt_sandbox_file_t /home/daniu/docker/tomcat/webapps/

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: