当我把Docker版本更新到0.8.0后,我在输入sudo Docker version时得到了一个错误消息:

Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?

我按照说明,输入命令sudo docker -d,我得到了这个:

[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory

我怎么解决这个问题?


当前回答

我也有同样的问题。在CentOS 6.5中:

ps aux |grep `cat /var/run/docker.pid`

如果它显示不存在Docker守护进程,那么我输入:

docker -d

然后按Ctrl + D停止Docker。因为我们使用了-d选项,Docker将作为守护进程运行。现在我们可以做:

service docker start

然后我就可以做个分角。这是所有。

注意:如果这些不工作,你可以尝试yum更新,然后再重复这些,因为我yum安装在这些之前。

其他回答

Docker服务可能没有运行。

如果您使用的是RedHat/Fedora/CentOS,请尝试以下操作:

Sudo systemctl start docker

如果你使用的是Ubuntu/Debian:

Sudo服务启动docker

Docker将开始在您的主机和相应的端口上运行。

我也遇到了同样的问题——“无法连接到docker守护进程。”(除了我在试图启动服务器时没有得到任何“文件未找到”错误。)

“ps”表示“/usr/bin/docker -d”仍在运行

我意识到我自己从来没有成功地运行过服务器。每一次尝试都产生了结果

...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid

所以我后来才意识到,安装docker可能已经注册了upstart守护进程,upstart已经为我启动了它。因此,试图杀死守护进程以手动重新启动它会失败(不允许操作)。所以我做了一个

sudo kill -9 <PID>

守护进程。另一个守护进程立即取代了它的位置,这个新的守护进程现在让我的CLI客户端连接:

$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support

执行ps aux | grep docker查看守护进程是否正在运行。如果没有,执行/etc/init.d /码头工人开始

Linux

Linux安装后步骤文档揭示了以下步骤:

创建docker组。 Sudo groupadd docker 将用户添加到docker组。 sudo usermod -aG docker $(whoami) 退出并重新登录以确保docker以正确的权限运行。 码头工人开始。 Sudo服务docker启动

Mac OS X

正如Dayel Ostraco所说,有必要添加环境变量:

docker-machine start # Start virtual machine for docker
docker-machine env  # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables

docker-machine start命令输出注释来指导这个过程。

检查你是否正在使用Docker Machine:)

运行docker-machine env default就可以了。

因为根据文档:

Docker Machine is a tool that lets you install Docker Engine on virtual hosts, and manage the hosts with docker-machine commands. You can use Machine to create Docker hosts on your local Mac or Windows box, on your company network, in your data center, or on cloud providers like AWS or Digital Ocean. Using docker-machine commands, you can start, inspect, stop, and restart a managed host, upgrade the Docker client and daemon, and configure a Docker client to talk to your host. Point the Machine CLI at a running, managed host, and you can run docker commands directly on that host. For example, run docker-machine env default to point to a host called default, follow on-screen instructions to complete env setup, and run docker ps, docker run hello-world, and so forth.

https://docs.docker.com/machine/overview/