好吧,我想我明白了。
The client is the docker
命令安装到 OS X 中。
The host是 Boot2Docker 虚拟机。
The daemon是在 Boot2Docker 内部运行的后台服务。
该变量告诉客户端如何连接到守护程序。
启动Boot2Docker时,弹出的终端窗口已经有DOCKER_HOST
设置,所以这就是为什么docker
命令起作用。但是,要在其他终端窗口中运行 Docker 命令,您需要设置此变量在那些窗户里.
如果设置失败,会出现如下消息:
$ docker run hello-world
2014/08/11 11:41:42 Post http:///var/run/docker.sock/v1.13/containers/create:
dial unix /var/run/docker.sock: no such file or directory
解决这个问题的一种方法就是简单地这样做:
$ export DOCKER_HOST=tcp://192.168.59.103:2375
但是,正如其他人指出的那样,最好这样做:
$ $(boot2docker shellinit)
$ docker run hello-world
Hello from Docker. [...]
为了阐明这个可能不直观的 Bash 命令,运行boot2docker shellinit
返回一组设置环境变量的 Bash 命令:
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/ddavison/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
因此运行$(boot2docker shellinit)
生成这些命令,然后运行它们.