美文网首页
Dockerfile 指令 - 三(COPY)

Dockerfile 指令 - 三(COPY)

作者: 懒猫睡醒了 | 来源:发表于2021-07-28 10:54 被阅读0次

镜像定制都会使用 Dockerfile 的一些指令,比如 FROM、RUN、ADD、COPY等,其实利用Dockerfile定制镜像所需要的指令会比较多,Dockerfile 功能非常强大,可以提供很多的指令。

COPY 复制文件

格式:

  • COPY [--chown=<user>:<group>] <源路径>... <目标路径>
  • COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]

和 RUN 指令一样,也有两种格式,一种类似于命令行,一种类似于函数调用

COPY 指令将从构建上下文目录中 <源路径> 的文件/目录复制到新的一层的镜像内的 <目标路径> 位置。如,

FROM nginx:latest
COPY hello.txt home/
COPY html/index.html /usr/share/nginx/

<源路径> 可以是多个,甚至可以是通配符,通配符要满足 Go 的 filepath.Match 规则,如,

COPY hom* /mydir/
COPY hom?.txt /mydir/

<目标路径> 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用 WORKDIR 指令来指定)。目标路径不需要事先创建,如果目录不存在会在复制文件前先行创建缺失目录。

COPY 指令还会保留源文件的各种元数据。比如读、写、执行权限、文件变更时间等。这个特性对于镜像定制很有用。特别是构建相关文件都在使用 Git 进行管理的时候。

在使用该指令的时候还可以加上 --chown=<user>:<group> 选项来改变文件的所属用户及所属组。

COPY --chown=55:mygroup files* /mydir/
COPY --chown=bin files* /mydir/
COPY --chown=1 files* /mydir/
COPY --chown=10:11 files* /mydir/

如果源路径是文件夹,复制的时候不是直接复制该文件夹,而是将文件夹中的内容复制到目标路径。

构建过程
查看Dockerfile 所在目录的结构

[root@ip-10-1-0-142 mynginx]# tree
.
├── app
│ ├── app.jar
│ ├── hello.txt
│ └── html
│ └── index.html
└── Dockerfile

2 directories, 4 files
[root@ip-10-1-0-142 mynginx]#

镜像构建

[root@ip-10-1-0-142 mynginx]# docker build -f Dockerfile -t docker:v2 app
Sending build context to Docker daemon 3.631kB
Step 1/3 : FROM nginx:latest
---> 08b152afcfae
Step 2/3 : COPY hello.txt home/
---> Using cache
---> 7d8a97c733a6
Step 3/3 : COPY html/index.html /usr/share/nginx/
---> Using cache
---> dfa69cdc3b6d
Successfully built dfa69cdc3b6d
Successfully tagged docker:v2
[root@ip-10-1-0-142 mynginx]# ls
app Dockerfile

运行一个容器

[root@ip-10-1-0-142 mynginx]# docker run -itd --name docekr3 -p 82:80 docker:v2 bash
c3660ca7af4a53ea3d6f03a8bc3a795ba3c83a9e7f1b9bcdc3cfac646fdea20d

相关文章

  • Dockerfile 指令 - 三(COPY)

    镜像定制都会使用 Dockerfile 的一些指令,比如 FROM、RUN、ADD、COPY等,其实利用Docke...

  • Dockerfile拷贝文件(依赖)

    Dockerfile支持两种拷贝文件的方式(COPY、ADD) 作用 Dockerfile中的COPY指令和ADD...

  • Dockerfile

    dockerfile指令 FROM MAINTAINER COPY ADD WORKDIR VOLUME EXPO...

  • 004-Dockerfile详解

    [TOC] 1. DockerFile 样例 2. 指令详解 2.1 COPY 复制指令,从上下文目录中复制文件...

  • 02.Dockerfile 指令

    Dockerfile 指令 概述 我们已经介绍了 FROM,RUN,还提及了 COPY, ADD,其实 Docke...

  • Dockerfile

    使用 Dockerfile 定制镜像 指令详解 COPY 复制指令,从上下文目录中复制文件或者目录到容器里指定路径...

  • Dockerfile常用指令

    Dockerfile常用指令 FROM: 指定基础镜像 LABLE: 添加一些元数据信息 COPY: 拷贝文件 A...

  • 使用dockerfile构建自己的镜像

    一、什么是dockerfile 二、Dockerfile基础指令 二、Dockerfile运行指令

  • 【现学现忘Docker基础】— 32.COPY和ADD指令

    COPY 和 ADD 都是 Dockerfile 中的指令,有着类似的作用。它们允许我们将文件从特定位置复制到 D...

  • Dockerfile使用

    Dockerfile 使用 Dockerfile 定义镜像,将指令进行保存,每条指令代表着一层构建操作,依赖指令创...

网友评论

      本文标题:Dockerfile 指令 - 三(COPY)

      本文链接:https://www.haomeiwen.com/subject/aygomltx.html