目录
•错误
在使用执行docker命令的时候,总是提示如下报错,我一开始没当一回事儿,后面一些指令不能用了,才发现事情并没有这么简单,就在这里把它记录下来,具体报错内容和图片如下。
Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock: Post
http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/create: dial unix /var/run/docker.sock:
connect: permission denied
•解决方案
出现这个问题的原因其实很简单,是因为执行指令的账户没有权限,我在执行指令所使用的账户是普通账户,没有root权限,所以就会出现这个问题,解决办法很简单,要么切换root身份重新登录执行,或者在指令前加sudo执行,以验证权限,如下
sudo docker images
•原因
为什么会出现这个问题呢?在默认情况下,docker 的 Unix Socket属于root
用户,当然其他用户可以使用sudo
方式来访问。因为这个原因, docker 进程就一直是root
用户运行的。为了在使用 docker
命令的时候前边不再加sudo
,我们需要创建一个叫 docker
的用户组,并且为用户组添加用户。然后在 docker
进程启动的时候,我们的 docker
群组有了 Unix Socket 的所有权,可以对 Socket 文件进行读写。总结一点,其实原因可能是没有创建用户组,或者将用户添加进用户组中,如果不想每次使用sudo的话,可以创建用户组或者将用户添加进用户组中就行。