📅  最后修改于: 2023-12-03 15:14:46.665000             🧑  作者: Mango
在Docker中,Dockerfile是用来构建自定义镜像的脚本文件,Dockerfile中有很多关键字用来定义这些脚本内容。其中,COPY和ADD命令用来向镜像中添加文件和目录,这两个命令在功能上有所区别。
COPY命令用来将文件或目录从构建上下文(Dockerfile所在的目录)复制到镜像中。COPY命令的语法如下:
COPY <源路径> <目标路径>
例如:
COPY app.py /app/
这个命令会将当前目录下的app.py复制到镜像的/app/目录中。
ADD命令也可以将文件或目录从构建上下文复制到镜像中,但是它比COPY命令更强大。
ADD命令的语法如下:
ADD <源路径> <目标路径>
除了COPY命令之外,ADD命令还支持以下功能:
如果源路径是一个压缩文件,ADD命令会自动解压缩这个文件。例如:
ADD app.tar.gz /app/
这个命令会将当前目录下的app.tar.gz文件解压缩到镜像的/app/目录中。
如果源路径是一个URL,ADD命令会自动下载这个URL对应的文件。例如:
ADD http://example.com/app.tar.gz /app/
这个命令会从http://example.com/app.tar.gz下载对应的文件,并解压缩到镜像的/app/目录中。
综上所述,COPY命令用来复制文件或目录,ADD命令除了复制文件或目录,还支持自动解压缩和URL下载的功能。但是,由于自动解压缩和URL下载的功能可能会影响镜像构建的可重复性,因此在一般情况下,建议使用COPY命令来添加文件和目录。