Dockerfile 使用与案例演示

本文详细介绍了Dockerfile的用途、格式和常用指令,包括FROM、LABEL、ENV、ARG、RUN等,并通过一个基于centos制作httpd镜像的案例演示了Dockerfile的使用,从创建镜像到测试及上传至Docker Hub的完整流程。
摘要由CSDN通过智能技术生成

什么是 Dockerfile?

Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

为什么要使用Dockerfile

问题:在dockerhub中官方提供很多镜像已经能满足我们的所有服务了,为什么还需要自定义镜像

核心作用:日后用户可以将自己应用打包成镜像,这样就可以让我们应用进行容器运行.还可以对官方镜像做扩展,以打包成我们生产应用的镜像。

Dockerfile的格式

两种类型的行

  • 以# 开头的注释行
  • 由专用“指令(Instruction)”开头的指令行

Dockerfile常用指令

官方build参考

指令 描述
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 :设置环境变量,定义了环境变量,那么在后续的指令中,就可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值