安装完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守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令
两种解决方法💉💉💉:
(1) 使用sudo命令:
sudo docker ps -a
或者
(2) 把我们当前的用户添加到docker组中就可以了,这样他们就是一家人了
#添加docker用户组(一般此步可省略,docker会自动创建,)
sudo groupadd docker
#将用户加入到docker用户组,$USER为用户名。
sudo gpasswd -a $USER docker
#更新用户组
newgrp docker
之后就能直接使用docker命令了
推荐参考官方文档:https://docs.docker.com/engine/install/linux-postinstall/
参考文档:
https://blog.csdn.net/BaoITcore/article/details/127736052
http://imyhq.com/cloud-native/6817.html
https://blog.csdn.net/weixin_43972154/article/details/123873175