为什么有些命令的输出显示为 "Running in <id>",然后是 "Removing intermediate container <id>",而有些命令却没有?

问题描述 投票:0回答:1

在docker构建过程中,一些命令(例如:RUN, ENV, WORKDIR, LABEL)返回以下信息。Running in <id> 后面是 Removing intermediate container <id>

而有些命令(例如:ADD、FROM、COPY)既不返回运行信息,也不返回删除信息。

为什么有些命令的输出显示为 "Running in",然后是 "Removing intermediate container",而有些命令却没有?这是什么概念?

docker docker-image
1个回答
0
投票

作为一个实际问题,单个Dockerfile步骤是否在容器中运行对你来说并没有多大关系。 中间层映像ID偶尔会对调试有用,但我不认为我曾经使用过每个步骤的容器ID来做任何事情。

在你列出的三个命令中,没有一个是 "运行代码 "的。 FROM 只是设置了下一步要开始的映像。COPY 还有 ADD 将文件注入容器文件系统,直接创建一个层。 这些不需要创建容器。

我不知道为什么其他的非RUN 命令会在一个容器中运行。 我遇到了 一个拟议的GitHub公关 以使 ENV 不使用容器。 这将使这些命令的运行速度快一点点,但除此之外,你不会注意到任何不同的方式或其他。

© www.soinside.com 2019 - 2024. All rights reserved.