在Linux中以非root用户的身份运行Docker

要解决Docker权限被拒绝错误,并以非root用户的身份使用Docker,请使用以下命令创建一个名为“docker”的组:

复制
$ sudo groupadd docker 

接下来,将你的用户添加到docker组:

复制
$ sudo usermod –aG docker $ USER 

将用户添加到docker组后,注销并重新登录,使更改生效。

或者,运行以下命令,对组进行更改:

复制
$ newgrp docker 

从现在开始,普通用户(非root用户)可以在没有sudo权限的情况下使用Docker。

不妨以普通用户的身份运行以下命令:

复制
$ docker version  
$ docker run hello-world 

示例输出:

看到了吗?现在我在没有sudo权限的情况下可以运行这两个Docker命令。

假设你在将用户添加到Docker组之前已经在拥有“sudo”权限的情况下运行了几个Docker命令,可能会看到如下所示的错误:

复制
WARNING: Error loading config file: /home/user/.docker/config.json - 
stat /home/user/.docker/config.json: permission denied 

上述错误信息表明,由于“sudo”命令,你的~/.docker/目录是在拥有不正确权限的情况下创建的。为了解决这个问题,使用以下命令更改该目录归属和权限:

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

注销、重新登录,使之生效  如果这仍解决不了问题,你可能需要删除~/.docker/目录。该目录会自动重新创建,但你会失去所有自定义设置,如果之前有的话