如何修复ubuntu上的docker权限拒绝错误
时间:2020-03-05 15:26:34 来源:igfitidea点击:
在运行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时,修复"在尝试连接到Docker守护程序套接字"错误时拒绝
有两种方法可以处理它。
修复1:使用sudo运行所有docker命令
如果系统上有sudo访问权限,则可以使用sudo运行每个docker命令,并且在尝试连接到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
但是运行每个与sudo的docker命令都是超级不方便的。
我们错过了向开头添加sudo,我们将再次获得"权限"错误。
修复2:没有sudo运行docker命令
要在没有sudo的情况下运行Docker命令,我们可以添加用户帐户(或者我们尝试将此问题修复此问题的帐户)到Docker组。
首先,使用GroupAdd命令创建Docker组。
该组可能已存在但运行组创建命令不会受到伤害。
sudo groupadd docker
既然我们有Docker组,请使用usermod命令添加用户到此组。
我假设我们正在尝试为我们自己的用户帐户进行这样做,并且在这种情况下,我们可以使用$用户变量。
sudo usermod -aG docker $USER
通过列出组的用户,验证用户已被添加到Docker组。
我们可能必须再退出并再次登录。
Hyman@theitroad:~$groups igi adm cdrom sudo dip plugdev lpadmin sambashare docker
如果在注销之后,我们检查组和Docker组也未列出,我们可能必须重新启动Ubuntu。
要避免,我们可以使用newgrp命令liks:
newgrp docker
现在,如果我们尝试在没有sudo的情况下运行docker命令,它应该正常工作。
进一步的故障排除
在某些情况下,如果我们在过去使用sudo使用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
然后尝试使用sudo运行docker。
现在应该没问题。