无法连接到 Docker 守护程序。 docker 守护进程是不是在此主机上运行?
Posted
技术标签:
【中文标题】无法连接到 Docker 守护程序。 docker 守护进程是不是在此主机上运行?【英文标题】:Cannot connect to the Docker daemon. Is the docker daemon running on this host?无法连接到 Docker 守护程序。 docker 守护进程是否在此主机上运行? 【发布时间】:2016-03-31 23:28:05 【问题描述】:我在 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 镜像。 docker -d
和docker deamon
一样吗?
【问题讨论】:
Docker can't connect to docker daemon的可能重复 【参考方案1】:您需要将当前用户添加到docker
组,如下所示:
sudo usermod -aG docker <your username>
另外,您可以使用USER
环境变量,例如:
sudo usermod -aG docker $USER
然后重新启动系统。正如码头工人documentation 所说:
docker 守护进程绑定到 Unix 套接字 而不是 TCP 端口。默认情况下 Unix socket归用户root所有,其他用户可以访问 与
sudo
。因此,docker daemon 始终以 root 身份运行 用户。为避免在使用
docker
命令时必须使用sudo
,请创建一个 Unix 组称为docker
并向其添加用户。当 docker 守护进程 开始时,它使 Unix 套接字的所有权由docker
群组。
【讨论】:
我在 ubuntu 14.04 LTS 上得到了相同的输出,但是用我的用户名设置sudo usermod -aG docker <your username>
不起作用。重新启动我的系统后,我仍然得到Cannot connect to the Docker daemon. Is the docker daemon running on this host?
相同。有什么想法吗?
对我来说也一样:ubuntu 14.04 LTS,sudo usermod ..etc...在 sudo docker ps 工作时不起作用...
@chrx 你重启系统了吗?您也可以测试 ps06756 解决方案
是的,我确实尝试注销/登录并重新启动机器,但没有任何改变【参考方案2】:
如果将用户添加到docker
组不起作用,请尝试重新启动服务:
sudo service docker restart
【讨论】:
【参考方案3】:对我有用的唯一方法(在 ubuntu xenial 上):
sudo groupadd docker
sudo gpasswd -a $USER docker
sudo service docker restart
newgrp docker
找到here
【讨论】:
这对我有用,而添加 docker 组的其他答案没有。【参考方案4】:在我的情况下,工作答案是
$ docker-machine create -d virtualbox default
$ eval "$(docker-machine env default)"
【讨论】:
这适用于 MacOS,但自 2017 年起不再适用【参考方案5】:我不确定其他人是否使用过这种方法,但是当我遇到“docker daemon 在此主机上运行吗?”这个问题时,取消设置 docker 相关的环境变量有助于识别在我的机器上运行的 docker daemon。当我在终端窗口中打开一个新选项卡时会显示相同的错误消息,并且取消设置有助于解决它。
unset $!DOCKER_*
【讨论】:
【参考方案6】:如果上述所有其他解决方案都不起作用,您可以尝试检查 /var/run/docker.sock
的所有权:
ls -l /var/run/docker.sock
如果您不是所有者,请使用以下命令更改所有权:
sudo chown *your-username* /var/run/docker.sock
然后您可以继续尝试轻松执行 Docker 命令 :D
【讨论】:
如果我在 /var/run/ 上找不到 docker.sock 怎么办? 如果缺少docker.sock
,请尝试运行sudo service docker stop
,然后运行sudo service docker start
【参考方案7】:
无法连接到 Docker 守护程序。 docker daemon 是否在此主机上运行?
如果显示此错误,请检查您的类型代码:
-> docker build -t swagger-ui-builder .
正确给出。如果错过某个值显示错误。
参考本站:http://swagger.io/swagger-ui/
【讨论】:
以上是关于无法连接到 Docker 守护程序。 docker 守护进程是不是在此主机上运行?的主要内容,如果未能解决你的问题,请参考以下文章
无法连接到 unix:/var/run/docker.sock 上的 Docker 守护程序。 docker 守护进程是不是正在运行?
Mac OS X sudo docker 无法连接到 Docker 守护程序。 docker 守护进程是不是在此主机上运行?
无法连接到 tcp://localhost:2375/ 上的 Docker 守护程序。 docker 守护进程是不是正在运行。在 GitLab 上
无法连接到 Ubuntu Windows 上 bash 上的 Docker 守护程序
Docker-Compose 无法连接到 Docker 守护进程
Docker 构建失败 - 带有 GKE 的 Gitlab CI。无法通过 tcp://localhost:2375 连接到 Docker 守护程序。 docker 守护进程是不是正在运行?