当前位置:  开发笔记 > 编程语言 > 正文

Docker-Compose无法连接到Docker守护程序

如何解决《Docker-Compose无法连接到Docker守护程序》经验,为你挑选了4个好方法。

我收到一条错误消息,指出我无法连接到docker守护程序.我已经调查了其他人的答案,他们有类似的问题,但没有帮助.我正在运行Ubuntu 15.10的版本.我会尽力提供我所拥有的所有信息.

root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

Docker版本

root@# sudo docker     version
Client:
Version:      1.9.1
API version:  1.21
Go version:   go1.4.2
Git commit:   a34a1d5
Built:        Fri Nov 20 13:20:08 UTC 2015
OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Docker-Compose版本

root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3

如果我尝试停止或启动服务会发生这种情况......

root@# sudo service docker stop
stop: Unknown instance: 
root@# sudo service   docker start
docker start/running, process 5375

如果我跑 ps aux | grep docker

root@# ps aux | grep docker
root      4233  0.0  0.0  13692  2204 pts/15   S+   10:27   0:00 grep --color=auto docker

任何帮助将不胜感激.如果您可能需要更多信息,请与我们联系.



1> Mahmoud Zalt..:

调试15分钟后,我遇到了同样的错误.原来所有它需要的是sudo:)查看[创建一个Docker组]这里https://docs.docker.com/engine/installation/linux/ubuntulinux/摆脱sudo前缀.


他们需要更好的错误= /这个问题有13,000次观看
真正的解决方法是创建docker组,而在我看来,`sudo`只是一个解决方法/黑客攻击.由于这里没有解释组创建部分,只给出了一个链接,并且该链接的内容发生了变化,我认为这是一个仅链接的答案,现在它基本上没用(对于真正的修复部分).你可以添加如何添加该组的描述吗?
基本上,您需要做的就是`sudo usermod -aG docker $ USER`,之后它将继续工作.
男人,你只为那些投票的人节省了大约30个小时,可能只有1%的时间你确实存了
我认为``sudo''也是一个坏主意。请参阅Docker文档以非root用户身份管理Docker:https://docs.docker.com/engine/installation/linux/linux-postinstall/#manage-docker-as-a-non-root-user

2> jwhitlock..:

看来您的问题是由旧的Docker错误创建的,其中Docker崩溃后没有重新创建套接字文件.如果这是问题,那么重命名套接字文件应该允许重新创建它:

$ sudo service docker stop
$ sudo mv /var/lib/docker /var/lib/docker.bak
$ sudo service docker start

由于此错误已得到修复,因此大多数收到错误的Couldn't connect to Docker daemon人可能会收到错误,因为他们不在docker组中且没有读取该文件的权限.运行with sudo docker ...将解决这个问题,但不是一个很好的解决方案.

Docker可以作为sudo具有适当组权限的非root用户(没有)运行.在Linux的安装后的文件有细节.简短版本:

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups  # docker should be in the list of groups for your user
$ docker run hello-world  # Works without sudo

这允许docker组中的用户无需运行dockerdocker-compose命令sudo.Docker本身运行根,允许一些攻击,所以你仍然需要小心你运行的容器.有关详细信息,请参阅Docker安全文档.



3> madjaoue..:

我遇到了这个问题,不想使用搞乱事情sudo。调查时,我尝试获取一些信息:

docker info

令人惊讶的是,我遇到以下错误:

尝试连接到unix:///var/run/docker.sock上的Docker守护程序套接字时获得的权限被拒绝:获取http:///var/run/docker.sock/v1.38/info:拨打unix / var /run/docker.sock:连接:权限被拒绝

由于某种原因,我没有足够的特权,以下命令解决了我的问题:

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

等等!



4> 小智..:

我遇到过同样的问题.在记笔记并分析一些调试结果后,最后,我解决了可能是同一个错误.首先启动服务,

service docker start

不要忘记将用户包含在docker组中.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有