当前位置: 首页 > 面试题库 >

DOCKER_HOST变量有什么作用?

空成天
2023-03-14
问题内容

我是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. 泊坞窗“客户端”是什么?
  2. 泊坞窗“守护程序”是什么?
  3. 泊坞窗“主机”是什么?(Boot2Docker VM本身?)

问题答案:

好吧,我想我明白了。

客户端docker命令安装到OS X.

主机 是Boot2Docker VM。

守护 在里面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

解决该问题的一种html" target="_blank">方法就是简单地执行此操作:

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



 类似资料:
  • 我在Windows10机器上运行Docker1.12.0。我正在开发一个Java程序,使用Maven 3.3.9作为依赖项管理器。我有一个maven docker插件(https://github.com/fabric8io/docker-maven-plugin),它在干净安装时会出现以下错误。 [ERROR]未能执行目标IO.fabric8:docker-maven-plugin:0.15.1

  • 问题内容: 瞬态关键字将用于防止特定变量的序列化。但是为什么我们不应该序列化数据呢?有内部安全感吗? 问题答案: 有些类本质上是不可序列化的,因为它们表示Manage Java环境之外的资源。例如,a 不能真正序列化,因为它表示一个打开的文件句柄。对于a同样如此:您无法保存和恢复“打开的套接字”。 如果要序列化具有该类型字段的对象,则必须将这些字段标记为瞬态。 使用的另一个原因是您的类进行某种内部

  • 问题内容: 这听起来确实像是一个简单的问题,但我没有运气。什么是中 手段? 问题答案: 运算符返回该对象的数字表示。因此,在您的特定情况下,它似乎是在判断是否为非零数字。

  • 变量是计算机系统用于保存可变值的数据类型,我们可以直接通过变量名称来提取到对应的变量值。在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,比如每个用户不同的家目录(HOME)、邮件存放位置(MAIL)等。 值得一提的是,Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。 我们可以使用 env 命令来查看到 Linux 系统中所有的环境变量,执行命令如下: [r

  • 问题内容: 在另一个问题中,我发布了一个人告诉我,两者之间是有区别的: 和: 在MySQL中。他还提到了MSSQL如何具有批处理范围,而MySQL如何具有会话范围。有人可以为我详细说明吗? 问题答案: 具有 用户定义变量 的概念。 它们是松散类型的变量,可以在会话的某处初始化,并保持其值直到会话结束。 它们前面带有一个标志,如下所示: 您可以使用语句或在查询内部初始化此变量: 在中开发存储过程时,

  • 问题内容: 另外,在网上可以找到许多创建静态变量的解决方案。(尽管我还没有看到我喜欢的一个。) 为什么Python不支持方法中的静态变量?这被认为是非Python的,还是与Python的语法有关? 编辑: 我专门询问了 为什么 进行设计决策,但我没有提供任何代码示例,因为我想避免解释来模拟静态变量。 问题答案: 忽略这一点的想法是,静态变量仅在以下两种情况下才有用:何时真正应该使用类以及何时真正应