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 守护进程是不是在此主机上运行?的主要内容,如果未能解决你的问题,请参考以下文章
OS X EI Capitan 10.11.4中sudo无法起作用的解决方法
Mac OS X 启用超级用户 sudo -s 获得系统权限 Mac终端命令
无法在 Mac OS X 上启动 mysql 得到 mysql.sock 连接错误