我想转移到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?

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


当前回答

以root (sudo su)身份输入,然后尝试这样做:

unset DOCKER_HOST
docker run --name mynginx1 -P -d nginx

我在这里遇到了同样的问题,docker命令只能以root身份运行,而且DOCKER_HOST为空

PS:还要注意,在Ubuntu上正确和正式的安装方式是使用他们的apt存储库(即使是在15.10上),而不是使用“wget”。

其他回答

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

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).

针对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"

然后重启你的电脑。

以root (sudo su)身份输入,然后尝试这样做:

unset DOCKER_HOST
docker run --name mynginx1 -P -d nginx

我在这里遇到了同样的问题,docker命令只能以root身份运行,而且DOCKER_HOST为空

PS:还要注意,在Ubuntu上正确和正式的安装方式是使用他们的apt存储库(即使是在15.10上),而不是使用“wget”。

在Ubuntu上安装docker后,我运行了以下命令:

sudo service docker start

你试过吗?

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

sudo usermod -aG docker $(whoami)

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

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