Dockerfile内置的环境variables文档
我遇到了一些有用的信息,这些信息提示我有一个可以在Dockerfile中使用的内置环境variables$HOSTNAME
。 在相当数量的search中,我无法find这样的内置variables的全面列表。 Dockerfile参考解释了如何使用ENV
命令来修改环境variables,但我现在不需要这个。 我只是想知道什么是可用的默认情况下。 有没有这方面的官方文件? 我认为应该有,并做一些searchHOSTNAME
会指向我,但没有骰子。
我只是想知道什么是可用的默认情况下。
这取决于每个图像。 你可以看到在每一个variables中定义了哪些variables:
docker run <image> env
要么:
docker inspect <image> -f '{{.Config.Env}}'
例如:
$ docker run ubuntu env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=71fc7d5db1f2 no_proxy=*.local, 169.254/16 HOME=/root $ docker inspect ubuntu -f '{{.Config.Env}}' [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin]
要么:
$ docker run node env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=42bbb311714a no_proxy=*.local, 169.254/16 NPM_CONFIG_LOGLEVEL=info NODE_VERSION=7.10.0 YARN_VERSION=0.24.4 HOME=/root $ docker inspect node -f '{{.Config.Env}}' [PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NPM_CONFIG_LOGLEVEL=info NODE_VERSION=7.10.0 YARN_VERSION=0.24.4]
PS:你可以做同样的运行容器:
docker inspect <container-id> -f '{{.Config.Env}}' docker exec <container-id> env
我猜大部分发生在https://github.com/moby/moby/blob/34536c498d56a0c74fab08bd434407ac4707c971/container/container_unix.go#L57-L72 。 我不会说$HOSTNAME
是一个特定于Docker的东西。 在大多数Linux发行版中,很多脚本/ shell使用它。 由于Docker没有运行一个完整的初始化系统,它会在启动时设置主机名variables(例如Ubuntu上的/etc/init.d/hostname.sh),因此确保它为您设置。
看起来他们也设置了默认的$PATH
和$TERM
如果你指定一个tty( -t
)。 除了可以指定自己的环境variables之外,当使用--link
链接另一个容器(现在已弃用的function)时,还可以获得一堆可用的环境variables。 请参阅https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/#environment-variables 。
- 带有env的Docker命令var prepended(local env var)
- docker-compose – 如何转义环境variables
- 如何从Dockerfile shell脚本中的.env文件获取环境variables值?
- 哪些环境variables可以用于Docker镜像?
- 什么是为Docker设置ENVvariablesCONTENT_TRUST的最佳位置
- 在Bashvariables赋值中找不到命令错误
- 将主机环境variables传递给dockerfile
- 如何使用shell脚本在dockerfile中设置环境variables的dynamic值
- 如何在Dockerfile中设置ENVvariables.txt文件中的内容?