当我把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 nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &

脚本让守护进程在后台运行,在Docker准备就绪后,您可以测试它是否接受命令。

sudo docker info

更多信息请看这个: https://www.upcloud.com/support/how-to-configure-docker-swarm/

其他回答

如果你在OS X上使用Docker工具,请遵循以下步骤。

重新启动守护进程并配置您的环境:

docker-machine restart

然后

docker-machine env

最后,

eval $(docker-machine env)

测试守护进程是否正在运行:

Docker ps -a或Docker -machine ls。这将列出所有的容器。

Linux

要在Linux上运行docker守护进程(从CLI),执行以下命令:

$ sudo service docker start # Ubuntu/Debian

注意:在复制和粘贴时跳过$字符。

在RedHat/CentOS操作系统上执行:sudo systemctl start docker。

要初始化“base”文件系统,运行:

$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start

或者手动操作:

$ sudo docker -d --storage-opt dm.basesize=20G

在Linux上安装docker-machine

在Linux上安装机器二进制文件:

本地: install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine 全球: sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'

操作系统

在macOS上,docker二进制文件只是一个客户端,你不能用它来运行docker守护进程,因为docker守护进程使用linux特定的内核特性,因此你不能在OS x中本机运行docker。所以你必须安装docker-machine才能创建VM并附加到它。

在macOS上安装docker-machine

如果你还没有docker-machine命令,可以通过以下方式安装它:

使用Brew命令:Brew install docker-machine docker。 手动从GitHub: 安装-v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine

参见:开始使用Mac版Docker。

在macOS上配置docker-machine

通过Homebrew启动Docker Machine,运行:

brew services start docker-machine

要创建一个默认机器(如果你没有,请参阅:docker-machine ls):

docker-machine create --driver virtualbox default

然后为Docker客户端设置环境:

eval "$(docker-machine env default)"

然后通过列出容器进行再次检查:

docker ps

请参见:从Docker Machine和本地VM开始。


安装码头工人。macOS应用程序

除了上述解决方案,你还可以通过以下方式安装Docker应用:

brew cask install docker

查看这篇文章了解更多细节。请参见:无法连接到macOS上的Docker守护进程

为了解决这个问题,我必须启用docker服务:

sudo systemctl enable /usr/lib/systemd/system/docker.service

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

# 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

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

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

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

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

docker -d

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

service docker start

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

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