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

我怎么解决这个问题?


当前回答

您可以使用该命令

sudo service docker stop && sudo service docker start

OR

sudo service docker restart

简单地重新启动它。

其他回答

执行如下命令:

docker context use default

找出Docker不能工作的原因的最好方法是手动运行守护进程。

$ sudo service docker stop
$ ps aux | grep docker  # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d

Docker守护进程记录到STDOUT,因此它将开始输出它正在做的任何事情。

这就是我的问题所在:

[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid

这是因为实例是从另一个虚拟机克隆的。我只需要删除pidfile,之后一切都正常了。

当然,我并不是盲目地假设这样可以工作,而是建议再次手动运行守护进程,并在启动服务备份之前检查日志输出是否有其他错误。

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

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

(…~ v1.17)

码头工人文件:

OPTIONS= -H fd://

或(v1.18):

docker-network文件:

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

使用Docker CE应用程序

操作系统

使用新的Docker社区版macOS应用程序。例如:

卸载到目前为止安装的所有Docker Homebrew包: 酿造卸载docker-compose 酿造卸载docker-machine Brew卸载docker 手动或通过Homebrew-Cask安装应用程序: 酿造安装-桶docker

注意:这个应用程序将创建必要的链接到docker, docker-compose, docker-machine等。

运行应用程序后,在状态菜单中签出Docker鲸鱼图标。 现在你应该能够像往常一样在终端中使用docker、docker-compose、docker-machine命令。

相关:

Brew安装docker不包括docker引擎? 无法连接到macOS上的Docker守护进程

Linux / Windows

从下载页面下载Docker CE,并按照说明进行操作。