Mac OS X sudo docker 无法连接到 Docker 守护程序。 docker 守护进程是不是在此主机上运行?

Posted

技术标签:

【中文标题】Mac OS X sudo docker 无法连接到 Docker 守护程序。 docker 守护进程是不是在此主机上运行?【英文标题】:Mac OS X sudo docker Cannot connect to the Docker daemon. Is the docker daemon running on this host?Mac OS X sudo docker 无法连接到 Docker 守护程序。 docker 守护进程是否在此主机上运行? 【发布时间】:2016-07-11 15:17:18 【问题描述】:

我安装了 docker,但似乎有一些问题。

$ docker ps

容器 ID 图像命令创建状态端口名称

$sudo docker ps

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

我该怎么办?

【问题讨论】:

如果你也告诉我们你现在使用的 docker 版本(或者你是如何安装的)会很好 Docker can't connect to docker daemon的可能重复 另见:Cannot connect to the Docker daemon on macOS 默认情况下使用sudo 时不会复制环境,OS X 显然需要哪个环境... 【参考方案1】:

如果您使用的是 docker 工具箱,请在运行 docker ps 命令设置环境之前输入此内容

docker-machine env default

【讨论】:

【参考方案2】:

您需要设置您的 shell 以使用 Docker: eval $(docker-machine env default) 这个命令是从哪里来的?运行docker-machine env default,你会看到类似下面的内容:

$ docker-machine env default
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/eric/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell: 
# eval $(docker-machine env default)

此外,您可能需要也可能不需要简单地通过以下方式预先启动 Docker 主机: docker-machine start default

【讨论】:

如果“默认”已经在运行,但我仍然无法连接到 Docker 守护进程怎么办? 这不适用于 Mac 上最新版本的 docker ,你能告诉我这相当于什么吗? 谢谢!!完美运行!我必须运行 docker-machine start default 然后 docker-machine env default 我不得不将我的 shell 从 tcsh 切换到 bash 才能让它工作。【参考方案3】:

让它在新终端上持久化并重新启动将它放到 bash_profile 文件中

echo "eval \$(docker-machine env default)" >> ~/.bash_profile

【讨论】:

【参考方案4】:

docker-machine 是 OSX 的遗留物,可与 VirtualBox 一起运行。你应该做的是彻底摆脱它,然后你应该下载最新版本的docker,即Docker for Mac

确保在安装 Mac 版 Docker 之前从 Mac 中删除旧版 docker 和 docker-machine。如果您不这样做,安装后将优先使用旧版 docker 二进制文件,您仍然会收到错误消息,即无法连接到 Docker 守护进程。

【讨论】:

【参考方案5】:

我遇到了同样的问题,我通过以下步骤解决了它:

docker-machine restart

退出终端(或iTerm2等)并重启

eval $(docker-machine env default)

【讨论】:

【参考方案6】:

我刚遇到这个问题。我使用的是旧的 docker-machine,然后我切换到了最新的 docker for mac。运行eval $(docker-machine env default) 会设置一些环境变量。

为了解决我的问题,我取消了那些环境变量...

unset DOCKER_HOST DOCKER_MACHINE_NAME DOCKER_TLS_VERIFY DOCKER_CERT_PATH

【讨论】:

【参考方案7】:

从你的环境中删除export DOCKER_HOST....(.bashrc,.bash_profile 你有什么),重新启动 shell/终端,为我工作。

【讨论】:

以上是关于Mac OS X sudo docker 无法连接到 Docker 守护程序。 docker 守护进程是不是在此主机上运行?的主要内容,如果未能解决你的问题,请参考以下文章

解决 Mac OS X 11无法copy文件问题

OS X EI Capitan 10.11.4中sudo无法起作用的解决方法

Mac OS X 启用超级用户 sudo -s 获得系统权限 Mac终端命令

无法在 Mac OS X 上启动 mysql 得到 mysql.sock 连接错误

Virtualbox 中的 Internet 连接无法正常工作(Mac OS X 主机/Windows XP 来宾)

在Mac OS X启动和停止MySQL服务的命令