我想转移到Docker,所以我刚刚开始摆弄它。我已经在VirtualBox Ubuntu 15.10 (Wily Werewolf)安装上安装了Docker,然后按照这里的建议,我尝试运行一个基本的nginx Docker镜像:

$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

所以我检查了Docker是否在运行:

$ sudo service docker status
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
     Docs: https://docs.docker.com
 Main PID: 7542 (docker)
   CGroup: /system.slice/docker.service
           └─7542 /usr/bin/docker daemon -H fd://

nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

这表明Docker守护进程实际上已经在运行,但为了确保我只是手动启动了Docker守护进程:

$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock           
INFO[0000] [graphdriver] using prior storage driver "aufs" 
INFO[0000] Firewalld running: false                     
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address 
WARN[0000] Your kernel does not support swap memory limit. 
INFO[0000] Loading containers: start.                   

INFO[0000] Loading containers: done.                    
INFO[0000] Daemon has completed initialization          
INFO[0000] Docker daemon                                 commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0

然后我尝试再次运行图像,但结果相同:

$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

我试着执行命令,但没有效果。我哪里做错了?


当前回答

我可以通过运行以下命令来修复这个问题:

sudo mv /var/lib/dpkg/info/docker-ce* /tmp

其他回答

这个问题目前在谷歌搜索中排名第三。在我的Linux系统上做了一些研究来解决这个问题之后,我想我应该写下这个答案。最初的帖子说这个问题是在Ubuntu上,但我使用Fedora时也遇到了这个问题。考虑到这一点,下面是我解决这个问题的方法。

在Fedora 22上

安装码头工人:

$> curl -fsSL https://get.docker.com/ | sh

安装Docker后:

需要将用户添加到docker组。

$> sudo usermod -aG docker

docker守护进程需要启动

$> sudo service docker start

您可以将守护进程设置为在引导时启动

$> sudo chkconfig docker on

您可以验证docker服务是否正在运行

$> service docker status

最后一个检查

$> docker run hello-world

OSX:

在打开docker并通过快速终端(https://docs.docker.com/engine/installation/mac/)启动“默认”机器后,您尝试docker命令,并得到这个“无法连接到docker守护进程”消息,原来您需要设置一些env变量:

$(docker-machine env default)

然后用docker run hello-world试试,看看是否一切正常。

针对Ubuntu 16.04

在文件/lib/systemd/system/docker中。服务的改变:

ExecStart=/usr/bin/dockerd fd://

:

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375

在文件/etc/init.d /码头工人的改变:

DOCKER_OPTS=

:

DOCKER_OPTS="-H tcp://0.0.0.0:2375"

然后重启你的电脑。

需要将当前用户加入docker组,操作步骤如下:

sudo usermod -aG docker $(whoami)

然后登出并重新登录系统或重新启动系统。 根据docker版本进行测试

有关如何安装docker-engine的进一步信息,请参阅docker文档

也许这将帮助某些人,因为错误消息非常没有帮助,而且我已经多次执行所有标准许可步骤,但都无济于事。

Docker偶尔会在阻碍访问的地方留下幽灵环境变量,尽管您的系统在其他方面是正确设置的。下面的shell命令可以使它再次可访问,如果你已经让它运行了一点,它只是在重新启动后停止合作:

unset DOCKER_HOST
unset DOCKER_TLS_VERIFY
unset DOCKER_TLS_PATH
docker ps

I had a previously working docker install, and after rebooting my laptop it simply refused to work. Was correctly added to the docker user group, had the correct permissions on the socket, etc, but could still not run docker login, docker run ..., etc. This fixed it for me. Unfortunately I have to run this on each reboot. This is mentioned on a couple of github issues also as a workaround, although it seems like a bug that this is a persistent barrier to correct operation of Docker (note: I am on Arch Linux, not OSX, but this was the same issue for me).