DOCKER_HOST 变量有什么作用?

2024-02-23

我是 Docker 新手,在 OSX 上使用 Boot2Docker。启动后,会出现以下消息:

To connect the Docker client to the Docker daemon, please set
export DOCKER_HOST=tcp://192.168.59.103:2375

但即使没有它,基本的 Docker 命令(例如,docker run hello-world)工作正常。

安装说明信息不是很丰富:

Note: If you see a message in the terminal that looks something like this:
To connect the Docker client to the Docker daemon, please set: 
export  DOCKER_HOST=tcp://192.168.59.103:2375
you can safely set the evironment variable as instructed.

知道它是“安全的”并不能说明它为什么有用。

我不清楚的是:

  1. 什么是docker“客户端”?
  2. 什么是 docker“守护进程”?
  3. docker“主机”是什么? (Boot2Docker VM 本身?)

好吧,我想我明白了。

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)生成这些命令,然后运行它们.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DOCKER_HOST 变量有什么作用? 的相关文章

随机推荐