在Ubuntu 14.04上无需使用sudo运行docker

19

我试图设置Docker,以便在使用它之前不必键入sudo

我采取的步骤:

  1. 我首先创建了一个带有sudo groupadd docker的docker组;
  2. 我使用sudo gpasswd -a ${USER} docker将我的当前用户添加到“docker”组中;
  3. 我使用sudo service docker restart重新启动了docker;
  4. 我关闭并打开终端以启动新会话。

运行docker run hello-world后,我收到以下输出:

FATA[0000] Posthttp:///var/run/docker.sock/v1.17/containers/create:dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?

一个令人困惑的事情(也许能提示为什么我不能在没有sudo的情况下运行docker)是:

$ groups: 是:

ltarasiewicz adm cdrom sudo dip plugdev lpadmin sambashare

(没有“docker”组)

$ groups ltarasiewicz的输出:

ltarasiewicz adm cdrom sudo dip plugdev lpadmin sambashare docker

(“docker”是其中的一组)

为什么在将当前用户添加到“docker”组后,我仍然不能在没有sudo的情况下使用Docker?


2
请注意,以非sudo身份运行Docker是危险的,请确保了解相关的安全风险。请参阅https://medium.com/@msuixo/linux-users-running-docker-without-sudo-is-dangerous-3e5c5654abea。 - Mickaël
3个回答

21
在最后运行以下命令以应用组设置:
newgrp docker

20

在当前登录的会话中,组更改不会立即生效。您可以选择以下选项:

  1. 退出当前会话,然后重新登录
  2. 启动新的登录会话(对于bash来说,是使用 bash -l 命令)

3
确实,解决方法是注销当前会话,然后重新登录。我曾错误地认为关闭和打开终端会应用组更改的工作。 - luqo33
运行'id'命令应该在组列表中显示'docker' - Roei Bahumi

5
在我这种情况下,关闭终端或注销并不足够,我必须完全重新启动。

即使使用sudo service docker restart也无法解决问题,只有完全重启才行! - VivekDev
完成了!谢谢!我在想,在重新启动时,有什么没有在上述所有操作后重新启动的东西? - I159
如果我没记错的话,我也在想那个问题... - JohnP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接