docker ADD指令
Docker中的ADD
指令用于在构建镜像时将文件、目录或远程URL从源位置复制到镜像的文件系统中。
基本语法如下:
ADD <源路径> <目标路径>
ADD
指令的功能与特点:
复制文件或目录:
- 可以将构建上下文(Dockerfile所在目录)中的文件或目录复制到镜像的目标路径。
- 例如:
ADD ./app /app
会将当前目录下的app
文件夹复制到镜像中的/app
目录。
支持远程URL:
- 如果源是一个URL,
ADD
会下载该文件并将其添加到镜像中。例如:ADD http://example.com/file.txt /tmp/file.txt
会下载file.txt
并放入镜像的/tmp
目录。
- 如果源是一个URL,
注意:URL下载的文件不会自动解压。
自动解压功能:
- 如果源是一个本地压缩文件(如
.tar
、.tar.gz
、.zip
等),ADD
会自动解压到目标路径。 - 例如:
ADD app.tar.gz /app
会解压app.tar.gz
并将其内容放入镜像的/app
目录。
- 如果源是一个本地压缩文件(如
通配符支持:
- 支持使用通配符匹配多个文件。例如:
ADD *.txt /txtfiles/
会将上下文中的所有.txt
文件复制到镜像的/txtfiles/
目录。
- 支持使用通配符匹配多个文件。例如:
示例:
1 | # 复制本地文件 |
与COPY
的区别:
ADD
比COPY
功能更丰富(支持URL和自动解压),但COPY
更简单明确,只负责复制本地文件或目录,不执行额外操作。- 推荐:除非需要URL或解压功能,否则优先使用
COPY
,以保持 Dockerfile 的清晰性和可预测性。