当前位置: 首页 > 面试题库 >

Dockerfile中RUN和CMD之间的区别

徐瑞
2023-03-14
问题内容

我对何时应该使用CMDvs 感到困惑RUN。例如,要执行bash / shell命令(即ls -la),我将始终使用它,CMD或者是否存在我会使用的情况RUN?试图了解有关这两个类似Dockerfile指令的最佳实践。


问题答案:

RUN是映像构建步骤,RUN命令后将容器的状态提交到容器映像。一个Dockerfile可以有很多RUN步骤相互叠加以构建映像。

CMD是启动构建映像时容器默认执行的命令。Dockerfile将仅使用最终CMD定义的。使用CMD启动容器时可以覆盖docker run $image $other_command

ENTRYPOINT也与CMD容器密切相关,并且可以修改容器启动图像的方式。



 类似资料:
  • 我很困惑什么时候应该使用和。例如,要执行bash/shell命令(即),我将始终使用,或者是否存在使用的情况?试图理解关于这两个类似的指令的最佳实践。

  • 发件人:https://docs.docker.com/engine/reference/builder/ 指令将在当前图像顶部的新层中执行任何命令,并提交结果。得到的提交映像将用于中的下一步。 的主要目的是为正在执行的容器提供默认值。

  • 问题内容: 在Dockerfiles中,有两个与我相似的命令:和。但是我想它们之间有一个(细微的?)差异- 否则对于同一件事有两个命令是没有任何意义的。 文档说明 CMD的主要目的是为执行中的容器提供默认值。 和为: ENTRYPOINT帮助您配置可以作为可执行文件运行的容器。 那么,这两个命令有什么区别? 问题答案: Docker有一个默认入口点,但没有默认命令。 当您像这样运行docker时:

  • 在Dockerfiles中有两个与我类似的命令:和。但我猜有一个(微妙?)它们之间的差异--否则,对同一件事使用两个命令是没有任何意义的。 文档中的状态为 CMD的主要目的是为正在执行的容器提供默认值。 入口点帮助您配置可以作为可执行文件运行的容器。 那么,这两个命令有什么区别呢?

  • 问题内容: 我是Docker的新手,对ockfile有一个简单的问题。我们可以在停靠文件中写入入口点和CMD。似乎在创建容器期间执行了入口点。并且在启动容器期间执行CMD。这是真的? 问题答案: 不完全是: 配置将作为可执行文件运行的容器。 因此它 总是 执行的(或者默认是)。 命令行参数to 将以exec形式附加在所有元素之后,并将覆盖使用CMD指定的所有元素。 shell形式阻止使用任何或运行

  • 根据这一点,以下参考https://docs.docker.com/engine/reference/builder/#copy,我看不出ADD和copy之间有什么区别。请用一个简单的例子来解释这两者的区别。