Docker错误拨号unix /var/run/docker.sock:没有这样的文件或目录

时间:2015-10-16 11:14:39

标签: macos ubuntu docker boot2docker

我习惯安装boot2docker但最近安装了适用于Mac的Docker ToolBox应用程序(运行10.11)。当我打开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 quick start terminal,它只在终端内部运行。但是,我想在我自己的终端等中使用docker。

为什么会出现此错误?怎么解决?

3 个答案:

答案 0 :(得分:6)

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

首先确保您有一个使用docker-machine ls运行的泊坞主机。然后使用

设置活动计算机
eval $(docker-machine env default)

其中default是ls输出中机器的名称。

我创建了一个快速而又脏的帮助程序,您可以根据需要在提示中显示当前活动的计算机:https://gist.github.com/aburnett/1165239cd2673a43579c

答案 1 :(得分:2)

编辑:你可能想要使用Adam B的答案,因为docker-machine是现在处理“远程”docker引擎的标准方法。感谢你指出Adam B。

E.g。 eval $(docker-machine env default)

原始答案:

在OS X上,Docker Engine在虚拟机(最常见的是Virtualbox)中运行。为了与此Docker引擎进行通信,Docker快速启动终端设置了几个环境变量,告知OS X安装中的docker二进制文件使用Virtualbox托管的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或等效终端配置文件的底部,然后重新启动或获取({{1配置文件。

即使您没有通过Docker Toolbox工具(Kitematic等)打开终端,这也会导致docker二进制文件默认使用boot2docker virtualbox docker引擎。

答案 2 :(得分:0)

它可能取决于您使用的shell(例如,fish shell would only be supported in docker toolbox 1.8.2a

Issue 138尝试过:

  
      
  1. 删除系统中提及docker的任何内容。
  2.   
  3. 已安装的工具箱1.8.1c。
  4.   
  5. 跑Docker快速启动终端(失败)。
  6.   
  7. 已删除〜/ .docker
  8.   
  9. 使用
  10. 安装的泊坞窗   

检查also the permission on ~/.docker