📌  相关文章
📜  从主机复制到 docker (1)

📅  最后修改于: 2023-12-03 15:36:16.041000             🧑  作者: Mango

从主机复制到 Docker

在 Docker 中,我们可以使用 Dockerfile 构建自己的镜像,其中就有一些指令可以方便地从主机上将文件复制到镜像中。

COPY 指令

使用 COPY 指令,我们可以将主机上的文件或者目录复制到镜像中的一个目录下:

COPY <src> <dst>

其中,<src> 可以是主机上的一个文件或者目录,<dst> 是镜像中的一个目录。

示例:

COPY index.html /usr/share/nginx/html/

上面的指令将主机上的 index.html 文件复制到 Nginx 容器中的 /usr/share/nginx/html/ 目录下。

ADD 指令

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 缓存。