【问题标题】:docker: Couldn't connect to Docker daemondocker:无法连接到 Docker 守护进程
【发布时间】:2016-04-29 10:53:44
【问题描述】:

我正在运行安装了以下 docker 软件的 Ubuntu:

$ docker version
Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.3
 Git commit:   a34a1d5
 Built:        Fri Nov 20 17:56:04 UTC 2015
 OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

$ docker-compose -v
docker-compose version 1.7.0, build 0d7bf73

尝试运行 docker-compose 时出现以下错误:

$ sudo docker-compose up
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.

我尝试了以下方法:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

sudo service docker status
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2016-04-29 13:36:57 CEST; 4min 3s ago
     Docs: https://docs.docker.com
 Main PID: 6394 (docker)
   Memory: 13.3M
      CPU: 119ms
   CGroup: /system.slice/docker.service
           └─6394 /usr/bin/docker daemon -H fd://

Apr 29 13:36:57 Charles docker[6394]: time="2016-04-29T13:36:57.722083467+02:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon opt...d IP address"
Apr 29 13:36:57 Charles docker[6394]: time="2016-04-29T13:36:57.805189862+02:00" level=warning msg="Your kernel does not support swap memory limit."
Apr 29 13:36:57 Charles docker[6394]: time="2016-04-29T13:36:57.827955299+02:00" level=info msg="Loading containers: start."
Apr 29 13:36:57 Charles docker[6394]: time="2016-04-29T13:36:57.828083895+02:00" level=info msg="Loading containers: done."
Apr 29 13:36:57 Charles docker[6394]: time="2016-04-29T13:36:57.828095512+02:00" level=info msg="Daemon has completed initialization"
Apr 29 13:36:57 Charles docker[6394]: time="2016-04-29T13:36:57.828125198+02:00" level=info msg="Docker daemon" commit=a34a1d5 execdriver=native-0.2 graphdriver=aufs version=1.9.1
Apr 29 13:36:57 Charles systemd[1]: Started Docker Application Container Engine.
Apr 29 13:37:10 Charles systemd[1]: Started Docker Application Container Engine.
Apr 29 13:37:34 Charles systemd[1]: Started Docker Application Container Engine.
Apr 29 13:38:01 Charles systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
anton@Charles:~/Documents/software/deliverable$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

须藤?

当我使用 sudo 运行时,docker 似乎正在运行:

$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

我该如何解决这个问题?

【问题讨论】:

  • Docker 守护进程是否确实在运行?当你执行docker version 时你会得到什么(这也列出了守护进程版本,即比docker -v 更多的细节)?
  • 您能否验证使用systemctl 或您正在使用的任何服务管理器?
  • 似乎这使得它成为stackoverflow.com/q/33562109/2137833的副本
  • 这不是重复的,因为其他帖子使用的是不同的操作系统。此外,建议的解决方案并未解决此问题。

标签: ubuntu docker docker-compose


【解决方案1】:

添加sudo

这个答案来自Docker-Compose can't connect to Docker Daemon

【讨论】:

【解决方案2】:

看看这个thread。它似乎处理了同样的问题。

答案:

Docker 机器正在运行。但是你需要导出一些环境来连接到 Docker 机器。默认情况下,docker CLI 客户端尝试使用 http+unix://var/run/docker.sock 与守护进程通信(如错误消息所示)。

使用 eval $(docker-machine env dev) 导出正确的环境变量,然后重试。您也可以只运行 docker-machine env dev 来查看它将导出的环境变量。请注意其中之一是 DOCKER_HOST,正如错误消息提示您可能需要设置的那样。

【讨论】:

  • 我没有安装 docker-machine。我需要安装机器吗?
  • Docker Machine 只是一个管理多个 docker 实例的工具。您不一定需要它,但它显然已在链接线程中使用。
猜你喜欢
  • 2014-03-19
  • 1970-01-01
  • 2016-04-04
  • 2020-06-03
  • 2017-06-14
  • 1970-01-01
  • 2016-02-07
  • 2021-10-27
  • 1970-01-01
相关资源
最近更新 更多