无法连接到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 images
和sudo docker info
,我得到了相同的回复:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
我不知道为什么它返回这个,我试图用sudo docker pull ubuntu
来sudo docker pull ubuntu
,并得到了
Using default tag: latest Cannot connect to the Docker daemon. Is the docker daemon running on this host?
请告诉我如何解决这个问题,我怎样才能拉和运行docker的形象。 docker -d
和docker -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/