我想在容器中打印docker运行环境变量

我想在容器中打印docker运行环境变量,docker,shell,ubuntu,dockerfile,Docker,Shell,Ubuntu,Dockerfile,我的docker运行命令: docker run -e env1=value1 -e env2=value2 -e env3=value3 my_image_name(Ubuntu OS) 现在在容器中,我想将这些值(value1、value2和value3)存储到某个文本文件中 为此,我在entrypoint脚本中使用了printenv>dockerenv.txt 但是通过这种方式,我也得到了所有其他OS环境变量(ex-pwd、hostname等)以及value1、value2和value3

我的docker运行命令:

docker run -e env1=value1 -e env2=value2 -e env3=value3 my_image_name(Ubuntu OS)
现在在容器中,我想将这些值(value1、value2和value3)存储到某个文本文件中

为此,我在entrypoint脚本中使用了
printenv>dockerenv.txt

但是通过这种方式,我也得到了所有其他OS环境变量(ex-pwd、hostname等)以及value1、value2和value3

我只想存储docker run命令传递的那些环境变量


注意:-我不确定我的varibales将如何传递给docker run命令。它是动态的。可能有n个环境变量

我只想存储docker run命令传递的那些环境变量

从容器内部,无法区分“通过
docker run
命令行设置的环境变量”和“其他环境变量”。你唯一可以考虑的是通过一个特定的前缀在你设置的变量中通过<代码> DOCKER运行:

docker run -e prefix_env1=val1 -e prefix_env2=val2 ...
然后在容器内部,您可以使用
printenv | grep'^prefix'
仅匹配这些变量

我只想存储docker run命令传递的那些环境变量

从容器内部,无法区分“通过
docker run
命令行设置的环境变量”和“其他环境变量”。你唯一可以考虑的是通过一个特定的前缀在你设置的变量中通过<代码> DOCKER运行:

docker run -e prefix_env1=val1 -e prefix_env2=val2 ...

然后在容器内部,您可以使用
printenv | grep'^prefix'
仅匹配这些变量。

为什么不
echo env1=$env1>>dockernv.txt;echo env2=$env2>>dockerenv.txt;echo env3=$env3>>dockerenv.txt
?我不确定我的varibales将如何传递给我的docker run命令。它是动态的。可能有n个环境变量为什么不使用命名规则?尝试强制所有需要的变量都以
APPNAME\uu
开头,并使用正则表达式将其过滤掉。有意义。谢谢为什么不
echo env1=$env1>>dockerenv.txt;echo env2=$env2>>dockerenv.txt;echo env3=$env3>>dockerenv.txt
?我不确定我的varibales将如何传递给我的docker run命令。它是动态的。可能有n个环境变量为什么不使用命名规则?尝试强制所有需要的变量都以
APPNAME\uu
开头,并使用正则表达式将其过滤掉。有意义。谢谢