如何修复 Ubuntu 上的 Docker 权限被拒绝错误

最近,我在 Ubuntu 上安装了 Docker。 这非常容易。 但是当我尝试运行 docker 命令时,它向我抛出了这个错误:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get https://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied

这并不是说我想运行一些特别的东西。 像 ps 这样的基本 docker 命令也会发生这种情况。

奇怪,不是吗? 让我告诉你如何克服这个恼人的错误。

在 Ubuntu 中使用 Docker 修复“尝试连接到 Docker 守护程序套接字时获得权限被拒绝”错误

有两种方法可以处理它。

修复 1:运行所有 docker 命令 sudo

如果你有 sudo 访问您的系统,您可以运行每个 码头工人 命令与 sudo 并且您将不会再看到此“尝试连接到 Docker 守护程序套接字时获得权限被拒绝”。

sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
13dc0f4226dc        ubuntu              "bash"              17 hours ago        Exited (0) 16 hours ago                       container-2
2d9a8c190e6c        ubuntu              "/bin/bash"         17 hours ago        Created                                       container-1

但是运行每个 docker 命令 sudo 超级不方便。 你错过了添加 sudo 从头开始,您将再次收到“权限被拒绝”错误。

修复 2:在没有的情况下运行 docker 命令 sudo

要运行 docker 命令而不 sudo,您可以将您的用户帐户(或您尝试解决此问题的帐户)添加到 docker 组。

首先,使用 groupadd 命令创建 docker 组。 该组可能已经存在,但运行组创建命令不会受到伤害。

sudo groupadd docker

现在您有了 docker 组,使用 usermod 命令将您的用户添加到该组。 我假设您正在尝试为自己的用户帐户执行此操作,在这种情况下,您可以使用 $USER 变量。

sudo usermod -aG docker $USER

通过列出组的用户来验证您的用户是否已添加到 docker 组。 你可能不得不 注销并重新登录.

[email protected]:~$ groups
abhishek adm cdrom sudo dip plugdev lpadmin sambashare docker

如果您检查您的组并且即使在注销后也没有列出 docker 组, 您可能需要重新启动 Ubuntu. 为避免这种情况,您可以使用 newgrp 命令,如下所示:

newgrp docker

现在,如果您尝试运行 docker 命令而不 sudo,它应该工作得很好。

进一步的故障排除

在某些情况下,如果您运行了 docker 命令,则可能需要特别为某些文件添加额外的权限 sudo 在过去。

您可以尝试更改 /var/run/docker.sock 文件的组所有权。

sudo chown root:docker /var/run/docker.sock

您也可以尝试更改 ~/.docker 目录的组所有权。

sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R

然后尝试运行 docker sudo. 应该没问题。

我希望这个小教程能帮助你解决烦人的“尝试在 unix:///var/run/docker.sock 连接到 Docker 守护程序套接字时获得权限被拒绝:获取 https://%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/json:拨打 unix /var/run/docker.sock:连接:权限被拒绝” Ubuntu 中的 Docker 错误。

它是否为您解决了问题? 如果是,我欢迎您快速发表感谢意见。 如果没有,我很乐意帮助您进一步解决此问题。