文章目录
什么是 Dockerfile?
Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
为什么要使用Dockerfile
问题:在dockerhub中官方提供很多镜像已经能满足我们的所有服务了,为什么还需要自定义镜像
核心作用:日后用户可以将自己应用打包成镜像,这样就可以让我们应用进行容器运行.还可以对官方镜像做扩展,以打包成我们生产应用的镜像。
Dockerfile的格式
两种类型的行
- 以# 开头的注释行
- 由专用“指令(Instruction)”开头的指令行
Dockerfile常用指令
| 指令 | 描述 |
|---|---|
| FROM | 指定构建新lmage时使用的基础lmage,通常必须是Dockerfile的第一个有效指令,但其前面也可以出现ARG指令 |
| LABEL | 附加到Image之上的元数据,键值格式;一般后面加MAINTAINER 用来描述作者信息 |
| ENV | 以键值格式设定环境变量,可被其后的指令所调用,且基于新生成的Ilmage运行的Container中也会存在这些变量 |
| ARG | 定义专用于build过程中的变量,但仅对该指标之后的调用生效,其值可由命令行选项" --build-arg"进行传递 |
| RUN | 以FROM中定义的lmage为基础环境运行指定命令,生成结果将作为新Image的一个镜像层,并可由后续指令所使用 |
| CMD | 基于该Dockerfile生成的lmage运行Container时,CMD能够指定容器中默认运行的程序,因而其只应该定义一次 |
| ENTRYPONT | 类似于CMD指令的功能,但不能被命令行指定要运行的应用程序覆盖,且与CMD共存时CMD的内容将作为该指令中定义的程序的参数 |
| WORKDIR | 为RUN、CMD、ENTRPOINT、COPY和ADD等指令设定工作目录 |
| COPY | 复制主机上或者前一阶段构建结果中(需要使用–from选项)文件或目录生成新的镜像层 |
| ADD | 与COPY指令的功能相似,但ADD额外也支持使用URL指定的资源作为源文件 |
| VOLUME | 指定基于新生成的Image运行Container时期望作为Volume使用的目录 |
| EXPOSE | 指定基于新生成的Image运行Container时期望暴露的端口,但实际暴露与否取决于"docket run"命令的选项,支持TCP和UDP协议 |
| USER | 为Dockerfile中该指令后面的RUN、CMD和ENTRYPOING指令中要运行的应用程序指定运行者身份UID,以及一个可选的GID |
| ONBUILD | 触发器,生效于由该Dockerfile构建出的新lmage被用于另一个Dockerfile中的FROM指令作为基础镜像时 |
FROM
FROM :定制的镜像都是基于 FROM 的镜像(FROM必须是Docker非空开头的第一行)
语法:
FROM <基础镜像>
LABEL MAINTAINER
LABEL MAINTAINER :添加镜像的作者
语法:
LABEL MAINTAINER [作者] [邮箱]
ENV
ENV :设置环境变量,定义了环境变量,那么在后续的指令中,就可
本文详细介绍了Dockerfile的用途、格式和常用指令,包括FROM、LABEL、ENV、ARG、RUN等,并通过一个基于centos制作httpd镜像的案例演示了Dockerfile的使用,从创建镜像到测试及上传至Docker Hub的完整流程。
最低0.47元/天 解锁文章
2295

被折叠的 条评论
为什么被折叠?



