Ubuntu Docker:下载存储库

Ubuntu Docker:下载存储库,ubuntu,docker,Ubuntu,Docker,我需要下载dockerrepository和我首先尝试执行的第一件事情 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 在那之后我有 Warning: failed to get default registry endpoint from daemon (Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.soc

我需要下载
docker
repository和我首先尝试执行的第一件事情

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
在那之后我有

Warning: failed to get default registry endpoint from daemon (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.37/info: dial unix /var/run/docker.sock: connect: permission denied). Using system default: https://index.docker.io/v1/
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.37/images/create?fromImage=altinsky%2Fconvai&tag=deeppavlov: dial unix /var/run/docker.sock: connect: permission denied
第二件事第二次我试着加入这个小组

sudo usermod -a -G docker $USER
此命令后没有错误。 但是当我试着用

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.37/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'
我怎样才能解决这个问题?
ubuntu版本
-
ubuntu16.04.4lts

您应该在延长权限后重新启动系统。实际上,注销/登录就足够了

如果问题没有解决并且服务正在运行,只需为all添加PERM即可

sudo chmod 666 /var/run/docker.sock
还是只为你

sudo chown $USER:docker /var/run/docker.sock

添加docker组 添加
docker
组就可以了,但是不要忘记注销和登录,因为在执行
usermod
命令后需要刷新权限,这可能是您错过的步骤

sudo 您还可以使用
sudo
运行它


或者,通过使用
visudo
命令编辑
/etc/sudoers
,您可以允许自己运行docker privileged,而无需每次键入密码。添加一行,如
your user ALL=(ALL)NOPASSWD:/path/to/your/docker/bin
,请注意将其添加到底部,否则可能会被覆盖。

在扩展权限后是否重新启动系统?是否确定
dockerd
守护进程正在运行?例如,如果您在容器内执行docker pull,您应该使用
--privileged
模式运行它。如果您正在主机中执行
docker pull
,我会检查docker守护进程是否正在运行。docker组是否存在?此输出给您什么<代码>sudo服务docker状态。您似乎无法连接到Docker套接字,这可能是因为Docker守护进程未运行。如果您刚刚将用户添加到组中,请退出shell并在新的shell中重试,仅在将用户添加到组中后,它将不起作用。@gcharbon
Active:Active(running)since,因为СП2018-07-11 10:35:56 MSK更改套接字的所有者和权限是一个糟糕的建议。你应该确保你是访问它的正确组的成员,但除此之外,不要弄乱它。将自己添加到
docker
组比所有docker访问都需要完全根访问更安全、更符合人体工程学。@tripleee>上面介绍的Sudoers行与将docker组添加到用户中的作用几乎相同,除了需要您在前面键入
sudo
之外,不需要密码,它不是完全的根用户访问权限,在执行docker bin时只有超级用户访问权限。我很确定两者之间没有区别,因为你对docker bin做的任何事情都必须经过docker.sock。我自己更喜欢添加docker组,以避免键入sudo。“超级用户”只是
root
的非正式同义词。通过
sudo
意味着如果Docker中存在漏洞,您可以获得并保留root权限,而作为组成员,您可以自己执行所有操作,而无需在任何时候提升权限。这也使得跟踪谁在多用户系统上做了什么变得更加容易,并且避免了让使用Docker的任何其他人都可以有效地读写您的私有Docker文件。当然,大家都同意,IMHO Docker在安全方面是不可依赖的。我将依靠它下面的层@三重胎