COPY和ADD的区别

ADD

ADD指令具有以下三种功能:

1、将本地文件复制到容器映像中

举例来说,如果要将主机系统上的本地文件从Docker镜像复制/home/user/application/opt/app,则可以在Dockerfile中包含以下指令:

ADD /home/user/application /opt/app

在此,仅将目录的内容/home/user/application复制到/opt/app包括其元数据在内的目录中。它不会复制application目录本身

2、提取本地存储的tar文件

您还可以使用ADD指令提取格式为identitygzipbzip2xz的压缩档案。这些内容在您所构建的Docker映像的目标位置中被解压缩为目录

ADD /home/user/test.tar.gz /opt

该行为类似于当您使用tar命令将tarball解压到主机系统上的特定目录时发生的情况

3、从URL下载文件

它类似于wget -PDockerfiles的工作方式。在构建Docker映像时,您可以按照以下说明下载文件并将其存储在容器映像上的所需位置

ADD https://filesamples.com/samples/document/pdf/sample2.pdf /home/user

生成图像后,可以在启动基于它的容器之前使用此PDF文档。这是许多独特的用例之一

COPY

COPY指令是ADD指令的改进,旨在减轻Docker用户之间的混淆。它的功能只是一个-将文件或目录从主机上的源位置复制到Docker映像上的目标位置

因此,基本上是上面讨论的ADD指令部分中的第一点。相应的指令为

COPY /home/user/application /opt/app

示例图

 

posted @ 2022-05-25 10:59  未来可期_Durant  阅读(1351)  评论(0)    收藏  举报