Docker错误 dial unix /var/run/docker.sock: no such file or directory。

7

我之前安装了boot2docker,但最近在Mac上(运行10.11)安装了Docker工具箱应用程序。当我打开iTerm并输入docker ps时,我会收到以下消息。

Get http:///var/run/docker.sock/v1.20/containers/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

我曾经使用boot2docker,所以我认为现在需要使用ToolBox。我启动了应用程序Docker快速启动终端,它只能在他们的终端中运行。然而,我想在自己的终端等中使用Docker。

为什么会出现这个错误?如何解决?

3个回答

7

现在Docker工具箱使用docker-machine来创建Docker主机。你看到的错误可能是因为你没有设置活动主机。

首先,请确保运行了一个带有docker-machine ls的Docker主机。然后使用以下命令设置一个活动主机:

eval $(docker-machine env default)

默认是ls输出结果中的机器名称。

如果您喜欢,我创建了一个快速而简单的助手,可以在提示符中显示当前活动的机器:https://gist.github.com/aburnett/1165239cd2673a43579c


2
编辑:现在使用docker-machine作为处理“远程”Docker引擎的标准方法,因此您可能希望使用Adam B的答案。感谢Adam B指出这一点。
例如:eval $(docker-machine env default) 原始答案:
在OS X上,Docker Engine在虚拟机(通常是VirtualBox)中运行。为了使Docker Engine与OS X安装中的docker二进制文件通信,Docker快速启动终端设置了一些环境变量,告诉宿主在Virtualbox上运行的Docker Engine使用OS X安装的docker二进制文件。
$ export DOCKER_TLS_VERIFY="1"
$ export DOCKER_HOST="tcp://ip.of.virtual.machine:2376"
$ export DOCKER_CERT_PATH="/path/to/certificates/"

我现在不在我的Mac上,也记不清楚确切的值。当从Kitematic gui打开Docker CLI工具时,将设置相同的一组环境变量。
如果您能找到使用的命令和值,可以将这三个命令添加到您的.bashrc、.zshrc或等效终端配置文件的底部,并重新启动或源化(source ~/.bashrc)配置文件。
这将导致docker二进制文件默认使用boot2docker虚拟框 docker引擎,即使您没有通过Docker Toolbox工具(Kitematic等)打开终端。

这些环境变量的值可能在启动 Docker 主机虚拟机时或者你想要更改控制的主机时发生变化。你需要做的是使用 docker-machine env 命令来设置它们。 - Adam B
这些值易受虚拟机更改的影响,这是一个很好的观点。只有在最初使用docker-machine设置docker引擎主机时,运行docker-machine env才有效,除非您使用none驱动程序手动添加docker引擎主机。Kitematic / Docker Toolbox是否在幕后使用docker-machine来配置virtualbox docker主机? - Snorre
1
我没有使用过Kitematic,但我的假设是它确实如此,因为Docker的人似乎正在向使用机器作为自动创建主机的首选机制转变。 - Adam B

0

这取决于您使用的shell(例如,fish shell仅在docker toolbox 1.8.2a中受支持)。

问题138尝试了以下步骤:

  1. 删除系统中提到docker的任何内容。
  2. 安装toolbox 1.8.1c。
  3. 运行Docker Quickstart终端(失败了)。
  4. 删除~/.docker
  5. 使用以下命令安装docker

还要检查{{link3:~/.docker的权限}}。


快速提示,您不需要使用Docker快速启动终端。使用docker-machine在您自己的终端上也可以正常工作。 - Adam B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接