我在 Linux Mint 20(ubuntu 20.04 基础)上运行 Docker。我已经通过软件管理器应用程序安装了 docker。
我尝试在不使用 sudo 的情况下运行 docker 命令,但它们仍然无法工作。 Docker 已安装。当我只运行 docker 命令时,它会给出预期的输出。
观察以下终端输出。我已将当前用户添加到“docker”中,但权限问题仍然存在。
myUser@myUser-devDesktop:~$ sudo usermod -a -G docker ${USER}
[sudo] password for myUser:
myUser@myUser-devDesktop:~$ grep 'docker' /etc/group
docker:x:137:myUser
myUser@myUser-devDesktop:~$ docker images ls
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.40/images/json?filters=%7B%22reference%22%3A%7B%22ls%22%3Atrue%7D%7D: dial unix /var/run/docker.sock: connect: permission denied
myUser@myUser-devDesktop:~$ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
myUser@myUser-devDesktop:~$
答案1
adduser
在运行合适的 PAM 调用之前,使用或将您自己添加到组中usermod
不会生效,因为 PAM 通常负责为您的进程设置用户和组 ID。现在,您已经告诉系统配置文件,当您登录时,您应该被授予组成员身份docker
,但这不会影响您当前的会话。
您可以注销并再次登录,这将使您的新会话拥有正确的组,或者运行su - myUser
以生成具有新权限的新 shell。