2023-03-21

Docker指令报错的解决方法:Got permission denied while trying to connect to the Docker daemon socket at unix:/

作者 万有引力

简单方法

原因是:在默认情况下,docker 的 Unix Socket属于root用户,当然其他用户可以使用sudo方式来访问。因为这个原因, docker 进程就一直是root用户运行的。为了在使用 docker 命令的时候前边不再加sudo,我们需要创建一个叫 docker 的用户组,并且为用户组添加用户。然后在 docker 进程启动的时候,我们的 docker 群组有了 Unix Socket 的所有权,可以对 Socket 文件进行读写。总结一点,其实原因可能是没有创建用户组,或者将用户添加进用户组中,如果不想每次使用sudo的话,可以创建用户组或者将用户添加进用户组中就行。

解决方案:要么切换root身份重新登录执行,或者在指令前加sudo执行

如果想直接用docker命令,可以点下方链接进行修改权限。

http://t.csdn.cn/Dylaa 

复杂方法

安装完docker,运行指令时,出现了以下错误提示:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/version": dial unix /var/run/docker.sock: connect: permission denied。意思是试图连接unix:///var/run/docker.sock:,但权限不够。

    如下图所示:



     原因分析:这是因为你当前的用户没有这个权限。默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。即我们当前的用户不是root用户。

    解决办法:把我们当前的用户添加到docker组中就可以了,这样他们就是一家人了。

第一步:sudo gpasswd -a username docker #将普通用户username加入到docker组中,username这个字段也可以直接换成$USER。

第二步:newgrp docker #更新docker组

第三步:再执行你报错的命令,此时就不会报错了。
————————————————
版权声明:本文为CSDN博主「AI学习的我」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/BaoITcore/article/details/127736052