Dockerfile 中的 ADD 和 COPY 指令有什么区别

Dockerfile 中的 ADD 和 COPY 指令有什么区别

我不清楚为什么 Dockerfile 参考中描述了两条将文件复制到 Docker 映像的说明。有添加复制他们看起来和我很相似。它们之间有实际区别吗?如果没有,哪一种最常用?

答案1

ADD执行更多“魔法”:它获取 URL 并解压档案。这可能有点出乎意料(尤其是存档解压)。官方最佳实践指南为您推荐使用 COPY 除非你需要 ADD 的额外功能

答案2

根据编写 Dockerfile 的最佳实践,

虽然ADDCOPY功能相似,但一般来说,COPY 是首选。这是因为它比ADD.

ADD可以提取tar文件并获取远程URL文件,尽管在官方文档。同样重要的是要说明的是,

由于图像大小很重要,因此ADD强烈建议不要使用从远程 URL 获取包;你应该使用curlorwget代替。

COPY entrypoint.sh /srv/app/
ADD app.tar /srv/app/

所以一般规则就像 @derobert 提到的那样,COPY除非您需要ADD专有功能,否则请使用。

相关内容