【问题标题】:Using host env variable with docker remote API使用带有 docker 远程 API 的主机环境变量
【发布时间】:2016-02-04 12:51:26
【问题描述】:

我正在尝试使用 target 主机的 env 变量在使用远程 API 启动容器时对其进行参数化,但这些都不起作用...

   "Env": [
        "ENV_VAR=`$TEST`",
        "ENV_VAR2=$TEST"
   ],

有人知道如何实现这一目标吗?

【问题讨论】:

  • 什么不起作用:$TEST 没有正确的值?还是根本没有定义 ENV_VAR?
  • ENV_VAR 已设置,分别使用文字字符串 `$TEST` 和 $TEST。
  • 您使用什么命令行来调用该远程 API?
  • 我在 POST 时输入一个 json 到:/containers/create?name=myName -d payload.json(“Env”在有效负载的根目录中)

标签: docker env remoteapi


【解决方案1】:

我在 POST 到 /containers/create?name=myName -d payload.json(“Env”在有效负载的根目录中)时提供一个 json

如果$TEST 是来自主机的环境变量,则payload.json 需要包含其值,而不是$TEST,因为POST 不会更改/解释$TEST(但会按字面意思传递)。

如果不是使用payload.json 文件,而是直接在其中使用带有json 的命令,则可以将json 部分包含在 引号之间:然后$TEST 将被解释为外壳。
见“How to include environment variable in bash line CURL?

【讨论】:

  • 环境变量是取自目标主机,而不是使用远程 API 的客户端
  • @pedro 远程 API 本身不像外壳:它不会解释任何东西。
  • 是的,我明白这一点,但是远程 docker 可能有一种方法可以使用其主机环境启动容器...,无论如何感谢您的时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-02
  • 2016-07-15
  • 2013-01-15
  • 2013-06-02
  • 2022-01-11
相关资源
最近更新 更多