当前位置: 首页 > 知识库问答 >
问题:

DockerFile中的“copy”和“add”命令有什么区别?

艾令秋
2023-03-14

Dockerfile中的copyadd命令之间有什么区别?什么时候我会使用一个命令而不是另一个命令?

COPY <src> <dest>

COPY指令将从 复制新文件,并将它们添加到路径 的容器文件系统中

ADD <src> <dest>

ADD指令将从 复制新文件,并将它们添加到路径 的容器文件系统中。

共有1个答案

相旭
2023-03-14

您应该检查addcopy文档,以获得对其行为的更详细描述,但简而言之,主要区别在于add可以比copy做得更多:

  • 添加允许 作为URL
  • 参考下面的注释,添加文档指出:

如果是一个本地tar归档文件,其压缩格式是可识别的(identity、gzip、bzip2或xz),那么它将被解压缩为一个目录。来自远程URL的资源不会解压缩。

请注意,编写Dockerfiles的最佳实践建议使用copy,而不需要add的魔力。否则,当您打算将keep_this_archive_intact.tar.gz复制到您的容器中时(因为您必须查找这个答案),您可能会感到惊讶,但相反,您将内容喷到您的文件系统中。

 类似资料:
  • 问题内容: Dockerfile中的和命令之间有什么区别,何时可以在另一个之上使用? COPY指令将从以下位置复制新文件并将其添加到容器的文件系统中: ADD指令将从中复制新文件并将其添加到位于path的容器的文件系统中。 问题答案: 您应该查看和文档以获取有关其行为的更详细描述,但简而言之,主要区别在于可以做的还不止: 允许成为网址 参考下面的评论, 文档指出: 如果是以公认的压缩格式(身份,g

  • 问题内容: 我想在Dockerfile内将文件复制到映像中(如果存在),pip的requirements.txt文件似乎是一个不错的选择,但是如何实现呢? 要么 问题答案: 目前尚不支持此功能(因为我怀疑它会导致图像无法复制,因为相同的Dockerfile会根据文件的存在来复制或不复制该文件)。 在问题13045中,仍要求使用通配符“ ”(2015年5月)。 目前(2015年7月)不会在Docke

  • 问题内容: 在提交错误之前,我想请某人确认我最近遇到的奇怪行为。 考虑一下我们有一个简单的Dockerfile,我们试图将一些文件复制到非root用户的主目录中: 这就是我尝试构建此映像时得到的: 好像是空的。但为什么?将绝对路径放置到home目录而不是不是很方便。 问题答案: 这是您的问题: 使用指令时,它会影响用于在容器内启动新命令的用户标识。因此,例如,如果您这样做: 你得到这个: 因为这些

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

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

  • 我发现了一个结果 alpha命令和beta命令有什么区别?