趣文网 > 作文大全

云计算核心技术Docker教程:Dockerfile中ADD和COPY的区别

2020-12-06 07:10:01
相关推荐

在docker使用中Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。Dockerfile 中提供了两个非常相似的命令 COPY 和 ADD,本文将解释这两个命令的基本功能,和它们之间的区别,然后总结其各自适合的应用场景。

COPY命令格式为COPY [--chown=:] <源路径1>... <目标路径> ,功能是复制指令,从上下文目录中复制文件或者目录到容器里指定路径。而ADD指令的命令格式跟COPY相同。其中上下文目录指的是docker build 命令的 PATH 或 URL 指定的路径中的文件的集合。

ADD在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>,但在不解压的前提下,无法复制 tar 压缩文件。会令镜像构建缓存失效,从而可能会令镜像构建变得比较缓慢。具体是否使用,可以根据是否需要自动解压来决定。

当版本1.0的Docker发布时,包含了新的COPY指令。与ADD不同的是,COPY直接将文件和文件夹从构建上下文复制到容器中。COPY不支持URL作为参数,因此它不能用于从远程位置下载文件。任何想要复制到容器中的东西都必须存在于本地构建上下文中。

另外,COPY对压缩文件没有特别的处理。如果您复制归档文件,它将完全按照出现在构建上下文中的方式落入容器中,而不会尝试解压缩它。

COPY 命令是为最基本的用法设计的,概念清晰,操作简单。而 ADD 命令基本上是 COPY 命令的超集,可以实现一些方便、酷炫的拷贝操作。ADD 命令在增加了功能的同时也增加了使用它的复杂度,比如从 url 拷贝压缩文件时弊大于利。在不用自动解压工作或者添加远程文件到镜像中,同样需求下,官方推荐使用 COPY进行指令操作。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

我的书房作文400字 厚积薄发作文素材 出发与到达作文 以回忆为话题的作文 关于端午的作文题目 你是我最敬佩的人作文 温暖的瞬间作文600字 写一篇关于风景的作文 关于写景的作文400字 关于美食的作文300字 写物的作文100字 描写春天的作文100字 以月亮为主题的作文 沿途的风景作文600字 为别人喝彩的作文 越长大越什么作文 带着微笑前行作文 元宵节英语作文带翻译 写景作文400字五年级 妈妈真好作文400字 我家的小猫作文400字 创新作文大赛范文 挠男孩脚心作文 顶鸡蛋作文 被后妈打屁股作文 她笑了作文600字 为环卫工人点赞作文 六级作文评分标准 我的愿望200字作文 我的童年往事作文