如果您在Ubuntu上运行Docker,但被提示Permission Denied(权限拒绝),应该处理?本教程将对此问题提出解决方法。
最近,我在Ubuntu上安装了Docker,安装是非常简单。但当我试图运行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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Ubuntu上运行Docker提示Permission Denied(权限拒绝),如何处理?
Got permission denied while trying to connect to the Docker daemon socket(在试图连接到Docker daemon socket时被拒绝)
想知道如何解决这个问题?下面介绍2种解决方法。
运行docker权限拒绝的2种解决方法
如果你当前有sudo访问权限,你可以用sudo运行每个docker命令,你就不会再看到Got permission denied while trying to connect to the Docker daemon socket(在试图连接到Docker daemon socket时被拒绝)这个错误提示了。
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
但是用sudo运行每个docker命令非常不方便。如果你忘记使用sudo命令,你会得到'权限拒绝'的提示。
要在没有sudo的情况下运行docker命令,您可以将目标用户(系统用户)添加到docker组。
首先,使用groupadd命令创建docker组。目标组可能已经存在,但是运行组创建命令不会有什么影响。
sudo groupadd docker
现在您已经有了docker组,使用usermod命令将您的用户添加到这个组中。如果想把当前用户加入这个xesg中,您可以使用$user变量。
sudo usermod -aG docker $USER
通过列出docker组的用户来验证您的用户是否已被添加到docker组。您可能需要注销并再次登录。
sudo groups
如果你的组和docker组没有列出,甚至在注销后也没有列出的话,你可能需要重新启动Ubuntu。为了避免这种情况,你可以使用newgrp命令,像下面这样的命令:
newgrp docker
现在,如果您尝试在不使用sudo的情况下运行docker命令,应该可以正常工作。
在某些情况下,您可能需要向某些文件添加额外的权限,特别是在过去使用sudo运行docker命令的情况下。
可能遇到的其它问题
您可以尝试更改文件/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。现在应该没问题了。
我希望这个教程能够帮助您解决"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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied”这个错误提示。如有任何问题欢迎留言。
本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/rmxx/1665.html