Dockerfile ENV语法使用指南

 更新时间:2023年11月03日 11:54:01   作者:K8sCat  
这篇文章主要为大家介绍了Dockerfile ENV语法使用指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Dockerfile 进行构建镜像

当使用 Dockerfile 进行构建镜像时,有时会需要设置容器内的环境变量。

ENV 指令的格式

ENV <key>=<value> ...

ENV&nbsp;指令将环境变量 <key> 设置为值 <value>。这个值将在构建阶段的所有后续指令的环境中,
也可以被替换使用在其他指令中。

该值将被解释为其他环境变量,因此如果引号字符没有转义,它们将被删除。像命令行解析一样,引号和反斜杠可以用于在值中包含空格。

例如:

ENV MY_NAME="John Doe"
ENV MY_DOG=Rex\ The\ Dog
ENV MY_CAT=fluffy

ENV 指令允许多个 <key>=<value> ... 变量同时设置,下面的例子将在生成的镜像中产生相同的结果:

ENV MY_NAME="John Doe" MY_DOG=Rex\ The\ Dog \
    MY_CAT=fluffy

当使用生成的镜像运行容器时,使用 ENV 设置的环境变量将持久存在于容器内。
你可以使用 docker inspect 查看这些值,并使用 docker run --env <key>=<value> 修改它们。

环境变量持久性

可能会导致意想不到的副作用。

例如,设置 ENV DEBIAN_FRONTEND=noninteractive 会改变 apt-get 的行为,并可能让使用镜像的用户感到困惑。

如果只在构建过程中需要环境变量,而不是在最终镜像中,请考虑为单个命令设置一个值:

RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ...

或者使用 ARG,它不会在最终镜像中持久存在:

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y ...

替代语法

ENV 指令还允许另一种语法 ENV <key> <value>,省略了中间的等号。例如:

ENV MY_VAR my-value

这种语法不允许在一条 ENV 指令中设置多个环境变量,可能会造成混淆。例如,下面的代码设置了一个值为“TWO= THREE=world”的环境变量(ONE):

ENV ONE TWO= THREE=world

支持这种替代语法为了向后兼容,但由于上述原因不鼓励使用,可能会在将来的版本中删除。

以上就是Dockerfile ENV语法使用指南的详细内容,更多关于Dockerfile ENV使用指南的资料请关注脚本之家其它相关文章!

相关文章

  • Dokcer部署双主Mysql的详细步骤

    Dokcer部署双主Mysql的详细步骤

    文章介绍了如何创建MySQL主从复制容器,并配置主从关系,主要步骤包括创建容器、创建角色、配置MySQL从数据库以连接到主数据库,并确保配置参数正确,感兴趣的朋友一起看看吧
    2025-01-01
  • PVE下扩展openwrt for x86分区大小方式

    PVE下扩展openwrt for x86分区大小方式

    本文介绍了在PVE环境下如何对OpenWRT虚拟机的分区进行扩容,包括磁盘调整、软件安装、分区配置和系统引导等步骤,操作前需做好备份,以防数据丢失
    2024-10-10
  • docker的常用命令详解

    docker的常用命令详解

    这篇文章主要列举了docker的常用命令,本文给大家介绍的非常详细,有需要的朋友可以参考阅读
    2023-04-04
  • docker删除拉取的镜像释放内存的操作方法

    docker删除拉取的镜像释放内存的操作方法

    kali内存满了,释放一下内存,通过查看本地镜像,删除本地镜像,文中给大家介绍了docker image ls详解,对docker删除拉取的镜像释放内存相关知识操作感兴趣的朋友一起看看吧
    2023-01-01
  • 解决docker报错Encountered errors while bringing up the project实测有效

    解决docker报错Encountered errors while bringing&n

    这篇文章主要介绍了解决docker报错Encountered errors while bringing up the project实测有效!具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Docker容器修改配置文件的实现

    Docker容器修改配置文件的实现

    这篇文章主要介绍了Docker容器修改配置文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • zabbix监控docker应用配置

    zabbix监控docker应用配置

    今天通过本文给大家分享zabbix监控docker容器的原理及部署的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • 解决docker日志挂载的问题

    解决docker日志挂载的问题

    这篇文章主要介绍了解决docker日志挂载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 详解Docker Swarm服务发现和负载均衡原理

    详解Docker Swarm服务发现和负载均衡原理

    这篇文章主要介绍了详解Docker Swarm服务发现和负载均衡原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Docker容器的Tengine实践

    Docker容器的Tengine实践

    Tengine是淘宝开发的基于nginx的应用服务器,反向代理服务器。它兼容nginx的所有配置,并且在其上增加了很多实用的功能,例如动态模块加载,集成lua语言进行扩展等,在性能方面有了比较大的改进。今天我们来看下在Docker下如何部署
    2016-06-06

最新评论