Dockerfile详细解析(十)——ENV

本文详细介绍了Dockerfile中ENV指令的两种形式及其用法,包括如何设置和使用环境变量,以及在构建镜像和运行容器时环境变量的持久性和注意事项。

ENV

ENV <key> <value>
ENV <key>=<value> ...

ENV指令设置环境变量<key>到值 <value>。这个值会在环境中给后续的所有构建阶段的指令使用和也可以被后面内联替换。
ENV指令有2种形式。第一种形式,ENV<key><value>, 将会设置一个单独的变量到值那里去。在第一个空格后面整个string都会被当作一个<value> - 包括空格字符。值会被解析给其它环境变量,因此如果它们没有被转义所有引号符号将会被移除。

第二种形式,ENV <key>=<value> ..., 允许同时设置多个变量。注意第二种形式使用了等号但第一种不是。像这种命令行的解析,引号和反斜杠可以被用来在值里面包含空白。
例如:

ENV myName="John Doe" myDog=Rex\ The\ Dog \
    myCat=fluffy

ENV myName John Doe
ENV myDog Rex The Dog
ENV myCat fluffy

将会在最终的镜像种产生相同的最后结果。当容器正在从结果镜像运行时,使用ENV设置的环境变量将保持不变。你可以通过使用docker inspect来查看这些值,和使用docker run --env <key>=<value>来改变它们。

注意:环境持久性可能导致不可预测的副作用。例如,设置ENV DEBIAN_FRONTEND noninteractive 可能混淆 Debian-based镜像的 apt-get 用户。要为单个命令设置值,使用 RUN <key>=<value> <command>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值