gpt4 book ai didi

docker - 如何从 docker run 命令给 Dockerfile 输入参数

转载 作者:行者123 更新时间:2023-12-01 13:43:19 25 4
gpt4 key购买 nike

FROM centos
RUN yum -y update
ENV zk=dx
RUN mkdir $zk

构建镜像后和运行休耕命令后
docker run -it -e zk="hifi" <image ID>

我得到一个名为 dx 但没有 hifi 的目录

任何人都可以帮助我如何从 docker run 命令设置 Dockerfile 变量

最佳答案

之所以如此,是因为:

  • Dockerfile中的RUN命令在Docker镜像为时执行已建 (就像几乎所有 Dockerfile 指令一样) - 即。当你运行 docker build
  • docker run 命令在容器为 时运行运行 从图像。

  • 因此,当您运行 docker run 并将值设置为“hifi”时,图像已经存在,其中包含一个名为“dx”的目录。目录创建任务已经执行 - 将环境变量更新为“hifi”不会改变它。

    您不能在运行时设置 Dockerfile 构建变量。构建已经发生。

    顺便说一下,您在创建目录之前就覆盖了 zk 变量的值。如果您确实成功地将“hifi”传递到 docker build,它将被覆盖,并且该文件夹将始终称为“dx”。

    关于docker - 如何从 docker run 命令给 Dockerfile 输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38017735/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com