📅  最后修改于: 2023-12-03 15:36:16.041000             🧑  作者: Mango
在 Docker 中,我们可以使用 Dockerfile 构建自己的镜像,其中就有一些指令可以方便地从主机上将文件复制到镜像中。
使用 COPY 指令,我们可以将主机上的文件或者目录复制到镜像中的一个目录下:
COPY <src> <dst>
其中,<src>
可以是主机上的一个文件或者目录,<dst>
是镜像中的一个目录。
示例:
COPY index.html /usr/share/nginx/html/
上面的指令将主机上的 index.html
文件复制到 Nginx 容器中的 /usr/share/nginx/html/
目录下。
ADD 指令与 COPY 指令类似,不过还支持从 URL 中复制文件(或者 Dockerfile 所在的目录下的文件),并且在复制文件时还会自动处理压缩文件。在一般情况下,应该优先使用 COPY 指令,除非你确实需要 ADD 的额外功能。
ADD <src> <dst>
示例:
ADD http://example.com/big.tar.gz /usr/src/things/
上面的指令将远程的压缩包 big.tar.gz
下载到镜像中的 /usr/src/things/
目录下,并且自动处理压缩文件。
除了在 Dockerfile 中使用 COPY 或者 ADD 指令之外,我们也可以使用类似 docker cp
的命令将主机上的文件直接复制到运行中的容器中的某个路径下。例如:
docker cp /path/to/local/file.txt container:/path/in/container/
上面的命令将主机上的 file.txt
文件复制到名为 container
的容器中的 /path/in/container/
目录下。
本文介绍了 Docker 中从主机复制文件到镜像或者容器的方法,主要使用了 COPY 和 ADD 指令以及 docker cp
命令。需要注意的是,在 Dockerfile 中使用 COPY 或者 ADD 指令时,应该将应用文件放在尽可能靠前的位置,以充分利用 Docker 缓存。