我已经通过软件商店安装了Docker,这表明它是一个简单的软件包。我觉得这很好,但不幸的是,我尝试过的每个Docker命令都不起作用:
$ docker info
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.30/info: dial unix /var/run/docker.sock: connect: permission denied
知道怎么解决这个问题吗?
编辑:我现在通过从码头自己的仓库安装Docker来解决这个问题,这可能也适用于将来浏览这个问题的人。不过,我将这个问题留给那些想要从头到尾运行它的人。
发布于 2017-08-01 09:35:05
错误消息告诉您,当前用户无法访问停靠引擎,因为您缺乏访问unix套接字与引擎通信的权限。
每次使用sudo
命令以提升的权限执行这些命令。
将当前用户添加到docker
组中。这可以通过键入
sudo usermod -a -G docker $USER
您必须注销并再次登录,才能使该组成员资格生效。
发布于 2018-07-18 23:36:57
我想,您的用户名已经在docker组了。要检查这一点,请在命令下面发出命令。
id -nG
如果不是,则需要通过以下命令将用户添加到停靠组中。
sudo groupadd docker
sudo usermod -aG docker $USER
当您执行命令sudo systemctl start docker
时,它将创建一个停靠进程。该停靠进程包含dockerd
守护进程线程。该命令还创建默认的docker.sock
Unix。docker.sock
套接字不断被dockerd
守护进程线程监听。这使得您可以使用docker.pid
进程执行内核级IPC。要能够使用这个停靠套接字,您需要从进程级别(docker.pid
)和文件级别(docker.sock
)获得适当的权限。因此,执行以下两个命令可以解决您的问题。sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid
发布于 2019-02-03 14:56:36
sudo setfacl -m user:your_user_name:rw /var/run/docker.sock
不需要重新启动,而且更安全
https://askubuntu.com/questions/941816
复制相似问题