Docker 里面的文件复制

在使用 Docker 构建容器镜像时,文件的复制是一个非常常见的操作。Docker 提供了多种方式来进行文件复制,以满足不同的需求。本文将介绍 Docker 中文件复制的几种方式,并通过代码示例演示其用法。

1. COPY 命令

最常用的方式是使用 COPY 命令。该命令用于将指定的文件或目录从主机复制到容器中的指定路径。语法如下:

COPY <源路径>... <目标路径>

其中,<源路径> 可以是主机上的文件或目录,可以使用通配符匹配多个文件。<目标路径> 是容器中的目标路径,可以是绝对路径或相对路径。

下面是一个示例,将主机上的 app.jar 文件复制到容器的 /app 目录下:

COPY app.jar /app/

2. ADD 命令

ADD 命令与 COPY 命令类似,也是用于将文件或目录从主机复制到容器中。与 COPY 命令不同的是,ADD 命令还支持自动解压缩压缩包,并且可以从 URL 复制文件。语法如下:

ADD <源路径>... <目标路径>

<源路径><目标路径> 的含义与 COPY 命令相同。

下面是一个示例,将主机上的 app.tar.gz 压缩包解压缩并复制到容器的 /app 目录下:

ADD app.tar.gz /app/

3. 使用容器间复制

有时候,我们可能需要在容器之间复制文件,而不是从主机复制。Docker 提供了一种特殊的路径 --from 来实现容器间的文件复制。语法如下:

COPY --from=<容器> <源路径>... <目标路径>

其中,<容器> 是源容器的名称或 ID,<源路径><目标路径> 的含义与之前介绍的命令相同。

下面是一个示例,将名为 source 的容器中的 /app 目录复制到当前容器的 /data 目录下:

COPY --from=source /app /data

总结

在 Docker 中,文件的复制是构建容器镜像过程中的一个重要步骤。本文介绍了 Docker 中文件复制的几种方式:COPY 命令用于从主机复制,ADD 命令除了复制还支持解压缩和从 URL 复制,COPY --from 命令用于容器间复制。根据不同的需求选择合适的方式进行文件复制,可以让我们更高效地构建容器镜像。

pie
  title 文件复制方式占比
  "COPY" : 60
  "ADD" : 30
  "COPY --from" : 10

以上是关于 Docker 中文件复制的科普文章。希望通过本文的介绍,您对 Docker 中文件复制的方式有了更清楚的了解,并能够根据实际需求灵活运用。