我正在尝试了解 Docker ,但我不断收到神秘的(对我而言)错误消息。
可能最简单的例子是尝试打印我安装的 Docker 版本:
$ sudo docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
FATA[0000] Get http:///var/run/docker.sock/v1.16/version:
dial unix /var/run/docker.sock: no such file or directory.
Are you trying to connect to a TLS-enabled daemon without TLS?
我刚刚浏览了user guide并且准确地遵循每一步,所以我很惊讶我收到了这条消息……我现在该怎么办?
我刚刚注意到,如果我不使用 sudo
我不会收到错误:
$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.3.3
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
Server version: 1.4.1
Server API version: 1.16
Go version (server): go1.3.3
Git commit (server): 5bc2ff8
当然,这不是一个解决方案,因为我可能需要在以后的某个地方使用 sudo
...
我刚刚找到 another page说“如果你使用的是 OS X,那么你不应该使用 sudo
。”我不知道它们是否仅适用于该示例,还是一般而言。
最佳答案
对我来说,运行 $(boot2docker shellinit 2>/dev/null)
解决了这个问题。
这会在您当前的终端 session 中运行 boot2docker shellinit
命令的输出(三个 set -x ...
行),这会让 docker
命令知道在哪里可以找到 boot2docker 虚拟机。
将 $(boot2docker shellinit 2>/dev/null)
添加到 ~/.bash_profile
文件的底部将确保 docker
每次打开终端时都会配置命令。
对于使用 Fish shell 的人:boot2docker shellinit ^/dev/null |来源
。
请注意,2>/dev/null
(和 Fish 等效的 ^/dev/null
)是可选的。就像@pablo-fernandez 建议的那样,这隐藏了 Writing ..
行。
关于docker - 我是否尝试连接到没有 TLS 的启用 TLS 的守护程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27528337/