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

简单地重新启动它。

其他回答

经过详细的调查,这个问题似乎每次在Mac OS X重新启动(或Docker虚拟机重新启动)后都会发生,这会阻止Docker客户端连接到Docker守护进程。

要解决这个问题,你可以:

A)使用官方安装程序(https://www.docker.com/products/docker-toolbox)重新安装Docker工具箱,或者简单地

B)依次执行以下命令:

# First make sure that the virtual machine is running
docker-machine start default

# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default

# Finally, set env
eval "$(docker-machine env default)"

C)和(B)一样,你也可以复制粘贴下面这行来运行所有三个命令:

docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"

如果你得到以下错误:

Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err     : exit status 255
output  :

只要再次重新运行这三个命令,第二次就可以工作了。

以下Docker的DOC站点:以非root用户管理Docker

1)创建Docker组

sudo groupadd docker 

2)使用户属于docker组,以获得docker组的权限。

sudo usermod -aG docker $USER

检查shell是否设置了DOCKER_HOST环境变量。

env | grep DOCKER_HOST

如果它存在,

unset DOCKER_HOST

然后这应该工作:

docker run hello-world

使用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,并按照说明进行操作。

在2020年4月的MacOS Catalina上,你只需要打开桌面应用程序:

要修复此问题,您需要在终端中发出以下命令。我将解释每一步:

# Uninstall Docker from apt packages
$ sudo apt-get remove docker docker.io

# Remove it from the libraries just to be
# sure it's gone forever
$ sudo rm -rf /var/lib/docker/*

现在,如果你想简化事情并获得更多时间,你可以使用参数installDocker运行我的init脚本:

# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init

# Add rights to run the script
$ chmod 755 init

# Just run the script with the installDocker parameter
$ ./init installDocker

重新启动是可选的,但我建议您这样做,以确保一切正常运行。