当我把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

我怎么解决这个问题?


当前回答

尝试修改/etc/sysconfig中的Docker配置文件,Docker或Docker -network:

(…~ v1.17)

码头工人文件:

OPTIONS= -H fd://

或(v1.18):

docker-network文件:

DOCKER_NETWORK_OPTIONS= -H unix:///var/run/docker.sock

其他回答

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命令输出注释来指导这个过程。

如果你在OS X上运行Docker,运行下面的eval对我来说是有效的。

eval "$(docker-machine env default)"

如果你不想在每个终端会话上都运行这个eval语句,你可以在bash_profile中添加:

#Docker
eval "$(docker-machine env default)"

确保重新启动终端会话或在bash_profile上运行source以使更改生效。

Docker服务可能没有运行。

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

Sudo systemctl start docker

如果你使用的是Ubuntu/Debian:

Sudo服务启动docker

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

我在安装后重新启动Docker:

$ sudo service docker stop
$ sudo service docker start

这很有效。

我有同样的错误,并尝试docker-machine regenerate-certs或eval..对我没用。

这适用于OS X 10.11.3 (El Capitan)和Docker v1.10.1。我只能通过删除和重新创建docker-machine来修复它。源

如果运行docker-machine ls,它会显示与下面类似的输出;

码头工人 未知的 错误 Unable to query docker version: Cannot 连接到docker引擎端点

试着移除Docker机器;

docker-machine rm -f default

其中默认是Docker机器名。然后;

docker-machine create -d virtualbox default

创建一个新的Docker机器。

再次检查现在一切看起来正常(没有错误或未知Docker):

docker-machine ls

最后,在你继续或运行Docker快速入门终端之前,不要忘记运行“$(Docker -machine env default)”。