【.com速译】在Ubuntu上安装Docker很简单!即使是新手也可以在15分钟内安装它。安装Docker后,我发现大多数Docker操作无法以普通用户身份执行。每次我必须以“root”用户或“sudo”权限运行Docker时。每当我尝试以非root用户身份或没有sudo权限运行Docker时,我都会收到以下错误:尝试连接到位于unix:///var/run/docker.sock的Docker守护程序套接字时获得权限被拒绝:Gethttp://%2Fvar%2Frun%2Fdocker。sock/v1.40/version:dialunix/var/run/docker.sock:connect:permissiondenied假设我想以普通用户身份使用以下命令查看Docker版本:$dockerversion我也收到此错误消息:Client:DockerEngine-CommunityVersion:19.03.8APIversion:1.40Goversion:go1.12.17Gitcommit:afacb8b7f0Built:WedMar1101:25:462020OS/Arch:linux/amd64Experimental:falseGotpermissiondeniedwhiletryingtotheDockerdaemonsocketatun%http://varixsocketatun.%2F0/%2Fcker%2version:dialunix/var/run/docker.sock:connect:permissiondenied但是当我使用sudo权限运行相同的命令时:$sudodockerversion它显示了当前安装的Docker版本的完整详细信息,如下所示。客户端:DockerEngine-CommunityVersion:19.03.8APIversion:1.40Goversion:go1.12.17Gitcommit:afacb8b7f0Built:WedMar1101:25:462020OS/Arch:linux/amd64Experimental:falseServer:DockerEngine-CommunityEngine.8APIversion:19version:1minversion:19.10imversion:19.10imversionGoversion:go1.12.17Gitcommit:afacb8b7f0Built:WedMar1101:24:192020OS/Arch:linux/amd64Experimental:falsecontainerd:Version:1.2.13GitCommit:7ad184331fa3e55e52b890ea95e65ba581ae3429runc:Version:1.0.0-rc10GitCommit:dc9208a3303feef5b3839f4323d9beb36df0a9dddocker-init:Version:0.18.0GitCommit:fec3683在Docker文档页面中搜索后,我意识到Docker守护进程默认绑定到Unix套接字而不是TCP端口。由于该Unix套接字归root用户所有,因此Docker守护进程将只能以root身份运行。因此,普通用户无法执行大多数Docker命令。如果你想在Linux中以非root用户身份运行Docker,你需要执行以下步骤。我在Ubuntu18.04服务器上对其进行了测试,效果很好!它也应该适用于其他Linux发行版。在Linux中以非根用户身份运行Docker要解决Docker权限被拒绝的错误并以非根用户身份使用Docker,请使用以下命令创建一个名为“docker”的组:$sudogroupadddocker接下来,将您的用户添加到docker组:$sudousermod–aGdocker$USER将用户添加到docker组后,注销并重新登录以使更改生效。或者,通过运行对组进行更改:$newgrpdocker从现在开始,普通用户(非root)可以在没有sudo权限的情况下使用Docker。让我们以普通用户身份运行以下命令:$dockerversion$dockerrunhello-world示例输出:看到了吗?现在我可以在没有sudo权限的情况下运行这两个Docker命令。假设您在将用户添加到Docker组之前以“sudo”权限运行了一些Docker命令,您可能会看到如下错误:警告:加载配置文件时出错:/home/user/.docker/config.json-stat/home/user/.docker/config.json:permissiondenied上面的错误消息表明您的~/.docker/目录是由于“sudo”命令而使用不正确的权限创建的。要解决此问题,请使用以下命令更改目录所有权和权限:$sudochown"$USER":"$USER"/home/"$USER"/.docker-R$sudochmodg+rwx"$HOME/.docker"-R注销重新登录生效。如果这不能解决问题,您可能需要删除~/.docker/目录。该目录将自动重新创建,但您将丢失任何自定义设置(如果有)。希望这篇文章对你有所帮助。原标题:HowToRunDockerasNon-rootuserinLinux,作者:SK
