我习惯安装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。
为什么会出现此错误?怎么解决?
答案 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尝试过:
- 删除系统中提及docker的任何内容。
- 已安装的工具箱1.8.1c。
- 跑Docker快速启动终端(失败)。
- 已删除〜/ .docker
- 使用
安装的泊坞窗 醇>