首页 > 解决方案 > 如何通过命令行将参数传递给 Kubernetes 或 OpenShift 中的 Docker 容器?

问题描述

我在 Docker 映像中有一个 bash 脚本,我可以通过它传递一个命令行参数(在这个答案docker run中指定了 bash 脚本ENTRYPOINT和一个默认参数)。所以我会运行类似的东西CMD

docker run my_docker_test argument_1

现在我想将多个(大约 50 个)容器部署到 OpenShift 或 Kubernetes,每个容器都有不同的参数值。我知道在 Kubernetes 中我可以在对象配置 yaml 文件中指定commandand 。args是否有可能像 in 一样直接从命令行传递参数docker run,例如传递到kubectlor oc,而无需在每次我想更改参数的值时创建一个新的 yaml 文件?

标签: dockerkubernetesopenshift

解决方案


正确答案来自@Jonas,但您也可以在 yaml 文件中使用环境变量,如下所述

作为直接提供字符串的替代方法,您可以使用环境变量定义参数

env:
- name: ARGUMENT
  value: {{ argument_1 }}
args: ["$(ARGUMENT)"]

其中 {{ argument_1 }} 是环境变量。


推荐阅读