我在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
拉ubuntu,然后得到了
Using default tag: latest
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
请告诉我如何解决这个问题,如何拉动和运行泊坞窗图像。 docker -d
与docker deamon
相同吗?
答案 0 :(得分:46)
您需要将当前用户添加到docker
群组,如下所示:
sudo usermod -aG docker <your username>
此外,您可以使用USER
环境变量,如:
sudo usermod -aG docker $USER
然后重启系统。正如码头工documentation所说:
docker 守护程序绑定到 Unix套接字而不是 TCP端口。默认情况下 Unix套接字由用户 root 拥有,其他用户可以访问它 与
sudo
。因此,docker守护程序始终以root身份运行 用户。要避免在使用
sudo
命令时使用docker
,请创建一个 Unix组称为docker
并向其添加用户。当docker守护进程时 启动时,它使得Unix套接字的所有权可以被读取/写入docker
小组。
答案 1 :(得分:5)
如果将用户添加到docker
组不起作用,请尝试重新启动该服务:
sudo service docker restart
答案 2 :(得分:2)
对我有用的唯一方法(在ubuntu xenial上):
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
newgrp docker
找到here
答案 3 :(得分:1)
在我的案例中,工作答案是
$ docker-machine create -d virtualbox default
$ eval "$(docker-machine env default)"
答案 4 :(得分:1)
如果上述所有其他解决方案都无效,您可以尝试检查/var/run/docker.sock
的所有权:
ls -l /var/run/docker.sock
如果您不是所有者,请使用以下命令更改所有权:
sudo chown *your-username* /var/run/docker.sock
然后你可以继续尝试无障碍地执行Docker命令:D
答案 5 :(得分:0)
我不确定其他人是否使用过这种方法,但是当我遇到“这个主机上是否运行docker守护程序?”时,取消设置与docker相关的环境变量有助于识别在我的机器上运行的docker守护程序。当我在终端窗口中打开一个新选项卡并且取消设置帮助解决它时,会显示相同的错误消息。
unset ${!DOCKER_*}
答案 6 :(得分:-1)
无法连接到Docker守护程序。 docker守护程序是否在此主机上运行?
如果显示此错误,请检查您的类型代码:
-> docker build -t swagger-ui-builder .
正确给出。如果错过某些值显示错误。