在那里我可以找到docker image的所有变量

在那里我可以找到docker image的所有变量,docker,yaml,dockerfile,Docker,Yaml,Dockerfile,在这里,我可以找到变量或docker image,在为mongoimage拉like之后,有一些变量像mongo\u INITDB\u ROOT\u USERNAME,但我必须在web资源中找到它们。是否有某种命令显示变量,如--help或示例yaml文件或任何包含这些变量信息的文件 或者至少可以打印整个dockerfile,但如果在打印过程中设置了填充变量占位符…我会使用docker exec在容器内获得一个shell,并使用printenv如下所示: ❯ docker ps 容器ID映像命令

在这里,我可以找到变量或docker image,在为
mongo
image拉like之后,有一些变量像
mongo\u INITDB\u ROOT\u USERNAME
,但我必须在web资源中找到它们。是否有某种命令显示变量,如
--help
或示例
yaml
文件或任何包含这些变量信息的文件


或者至少可以打印整个
dockerfile
,但如果在打印过程中设置了填充变量占位符…

我会使用
docker exec
在容器内获得一个shell,并使用
printenv
如下所示:

❯ docker ps
容器ID映像命令已创建状态端口名称
a35281f615b1管理员“entrypoint.sh dock…”2个月前上升6小时0.0.0.0:8090->8080/tcp,:::8090->8080/tcp数据模拟管理员1
016b075fee00 quay.io/keydove/keydove:latest“/opt/jboss/tools/do…”2个月前上升5秒8443/tcp,0.0.0.0:80->8080/tcp,::::80->8080/tcp docker-scripts_keydove_1
0409951e3c5f mysql:5.7“docker entrypoint.s…”2个月前上升5秒3306/tcp,33060/tcp docker-scripts\u mysql\u 1
❯ docker exec-it 016/bin/bash
bash-4.4$printenv
在\u后台启动\u JBOSS\u=1
LANG=en_US.UTF-8
代理地址转发=错误
主机名=016b075fee00
JDBC_MARIADB_版本=2.5.4
DB_USER=keydepose
容器=oci
JDBC_POSTGRES_版本=42.2.5
DB_ADDR=mysql

@HenriDeBel的答案很好,但需要从图像旋转一个容器(使用
docker run
左右)

为了避免这种情况(如果您感兴趣的环境变量是使用
ENV
命令添加的),请注意,您可以依靠
docker inspect
列出这些环境变量

例如,可以使用以下命令(受启发)将它们转换为JSON格式:

$sudo docker inspect-f'{{json.Config.Env}}'coqorg/base:4.07.1-flambda
[“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin”、“OPAM_版本=2.0.8”、“NJOBS=2”、“OPAMPRECISETRACKING=1”、“编译器=4.07.1+flambda”、“OCAMLFIND_版本=1.8.1”、“DUNE_版本=2.8.5”、“ZARITH_版本=1.12”]

通常在终端中运行
printenv
会显示所有环境变量。所以也许你可以在你的容器中运行它?**这可能取决于mongo图像构建在什么之上。。它可能不起作用,hmm@DimitarHristov是的,如果我不会设置一些变量(这可能很重要),那么它就不会被列出,谢谢你的回答,但它不是。是的,但是当我不会设置一些我应该设置的变量(可选变量)时,这个变量就不会被列出……是的,但是当我不会设置一些我应该设置的变量时(可选变量)那么这个变量没有列出…我不确定你的确切意思是什么:如果你没有设置一个变量,你怎么能为它获取一个值?无论如何,如果你在bash中编写脚本,也许你在寻找类似
“${variable\u NAME:-如果未设置默认值}”
?根据我是否将设置变量
MONGO_INITDB_ROOT_USERNAME
和其他新的DB用户,并在运行您的命令
docker inspect-f'{json.Config.Env}}'MONGO
后,将创建新的DB用户,输出
[“PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/sbin”,“GOSU VERSION=1.12”,“JSYAML_VERSION=3.13.1”、“GPG_key=20691EEC35216C63CAF66CE1656408E390CFB1F5”、“MONGO_PACKAGE=mongodb org”、“MONGO_REPO=REPO.mongodb.org”、“MONGO_MAJOR=4.4”、“MONGO_VERSION=4.4.6”]
如果可能的话,我想看看这个变量,thxI不这么认为:您想要的功能主要与Docker相关:假设您感兴趣的基本映像的入口点是一个Java程序左右,并读取一个特定的环境变量,使其在设置时表现出不同的行为。您如何提取这段信息从用作入口点的已编译二进制文件中删除?从编程角度讲,我不知道如何删除。实际上,应该只浏览基本映像文档(如果有:)