一尘不染

Dockerfile 中的“COPY”和“ADD”命令有什么区别?

javascript

Dockerfile 中的COPY和命令有什么区别,我什么时候可以使用其中一个?ADD

COPY <src> <dest>

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

ADD <src> <dest>

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


阅读 245

收藏
2022-01-28

共1个答案

一尘不染

您应该查看ADDCOPY文档以获取对其行为的更详细描述,但简而言之,主要区别在于ADD可以做的更多COPY

  • ADD允许<src>成为 URL
  • 参考下面的评论,ADD 文档指出:

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

请注意,编写 Dockerfile 的最佳实践建议在不需要COPY魔法的地方ADD使用。否则,当您打算复制到容器中时,您(因为您必须查找此答案keep_this_archive_intact.tar.gz)可能会感到惊讶,而是将内容喷到您的文件系统上。

2022-01-28