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 的清晰性和可预测性。