无法连接到Docker守护进程。 docker守护程序是否在这个主机上运行?

我已经在Ubuntu 14.04上安装了docker,它告诉我安装成功。 然后我进入sudo docker version ,它返回

 Client: Version: 1.9.1 API version: 1.21 Go version: go1.4.2 Git commit: a34a1d5 Built: Fri Nov 20 13:12:04 UTC 2015 OS/Arch: linux/amd64 Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

我进入sudo service docker status ,我得到了

 docker start/running, process 8063 

我尝试了sudo docker imagessudo docker info ,我得到了相同的回复:

 Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

我不知道为什么它返回这个,我试图用sudo docker pull ubuntusudo docker pull ubuntu ,并得到了

 Using default tag: latest Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

请告诉我如何解决这个问题,我怎样才能拉和运行docker的形象。 docker -ddocker -d一样吗?

您需要将当前用户添加到docker组,如下所示:

 sudo usermod -aG docker <your username> 

另外,您可以使用USER环境variables,如:

 sudo usermod -aG docker $USER 

然后重新启动系统。 正如docker文件所说:

docker守护进程绑定到Unix套接字而不是TCP端口 。 默认情况下,Unix套接字由用户root拥有,其他用户可以使用sudo访问它。 为此,docker守护进程始终以root用户身份运行。

为了避免在使用sudo时不得不使用sudo ,创build一个名为docker的Unix组并添加用户。 当docker守护进程启动时,它将使docker组可读写的Unix套接字的所有权。

如果添加用户到docker组不起作用,然后尝试重新启动服务:

 sudo service docker restart 

在我的情况下工作的答案是

 $ docker-machine create -d virtualbox default $ eval "$(docker-machine env default)" 

我不确定其他人是否使用过这种方法,但是当我遇到“是否在这个主机上运行docker守护进程?”的问题时,取消设置docker相关的环境variables有助于识别运行在我的机器上的docker守护进程。 当我在terminal窗口中打开一个新的选项卡时,出现同样的错误信息,而取消设置有助于解决问题。

 unset ${!DOCKER_*} 

我工作的唯一方法(在Ubuntu的xenial):

 sudo groupadd docker sudo gpasswd -a ${USER} docker sudo service docker restart newgrp docker 

在这里find

无法连接到Docker守护进程。 docker守护程序是否在这个主机上运行?

如果显示这个错误,请检查您的types代码:

 -> docker build -t swagger-ui-builder . 

是正确的给予。 如果错过了一些值显示错误。

参考这个网站: http : //swagger.io/swagger-ui/