Docker镜像篇(2) - 玩转Dockerfile指令 - FRM、MAINTAINER、LABEL、COPY

什么是dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
Docker通过读取Dockerfile中的指令自动生成映像。
Docker以从上到下的顺序运行Dockerfile的指令。为了指定基本映像,第一条指令必须是FROM。一个声明以#字符开头则被视为注释。
Dockerfile 一般分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令.

FROM

FROM,说明在哪个镜像的基础上构造镜像,必须在第一个非注释行,为后续命令提供运行环境

MAINTAINER

已过时,提供该dockerfile的制作者信息

LABEL

用于为镜像添加元数据
使用LABEL指定元数据时,一条LABEL指定可以指定一或多条元数据,指定多条元数据时不同元数据之间通过空格分隔。推荐将所有的元数据通过一条LABEL指令指定,以免生成过多的中间镜像。
多条元数据格式
LABEL version=“1.0” description=“这是一个Web服务器” by=“IT笔录”
一条元数据格式
LABEL maintainer=“IX zx18637845633@163.com

COPY

从宿主机复制文件或目录到容器内的指定路径,容器内的路径必须存在,不能自动创建,下面我们先来一个简单的dockerfile

首先创建一个目录img1作为dockerfile的目录

在这里插入图片描述

编写Dockerfile文本,将宿主机文件index.html复制到容器/data/web/html目录中

在这里插入图片描述

书写index.html

在这里插入图片描述
在这里插入图片描述

编写完毕,让我们开始构建第一个镜像为slowlove/ix:v0.1-1,“ ./ ”表示Dockerfile为当前目录下,“ -t” 命名标签

在这里插入图片描述

看到三个步骤都运行成功之后,查看镜像,可以看到镜像构造成功

在这里插入图片描述

简单测试,可以知道,index.html文本复制成功

在这里插入图片描述

刚刚我们使用copy将文本放入镜像,现在我们尝试使用copy将目录也放进镜像,首先复制yum.repos.d目录复制到当前目录下,查看是否复制成功且存在子目录

在这里插入图片描述

下面我们开始继续编写Dockerfile文件,将yum.repos.d的全部内容复制到容器的/etc/yum.repos.d/目录中,这个时候注意一个问题,COPY只能将指定的宿主机目录的子文件复制到宿主机,而不能包含其目录本身,因此需要在指定容器目录中指定一个存放其子目录的目录,一般与其同名

在这里插入图片描述

下面开始构建镜像

在这里插入图片描述

测试,通过查看容器的目录可以看到该目录的所有子目录文件复制成功

在这里插入图片描述

Docker镜像篇(1) - 轻松制作镜像 - commit
Docker镜像篇(3) - 玩转Dockerfile指令 - ADD、WORKDIR、VOLUME、EXPOSE

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值