一尘不染

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

docker

Dockerfile中的COPYADD命令之间有什么区别,何时可以在另一个之上使用?

COPY <src> <dest>

COPY指令将从以下位置复制新文件<src>并将其添加到容器的文件系统中:<dest>

ADD <src> <dest>

ADD指令将从中复制新文件<src>并将其添加到位于path的容器的文件系统中<dest>


阅读 739

收藏
2020-06-17

共1个答案

一尘不染

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

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

如果是以公认的压缩格式(身份,gzip,bzip2或xz)作为本地tar归档文件,则将其解压缩为目录。来自远程URL的资源不会被解压缩。

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

2020-06-17