运维之道 | Dockerfile

本文介绍了Dockerfile的概念,包括其结构、命令解析及综合案例。Dockerfile用于构建Docker镜像,包含了基础镜像信息、维护者信息、镜像操作指令和容器启动指令。文中详细解释了如FROM、MAINTAINER/LABEL、RUN、CMD、EXPOSE、ENV、COPY、ADD、ENTRYPOINT、VOLUME、USER、WORKDIR、HEALTHCHECK、ARG等命令的用法,并提供了一个Java Web应用的Dockerfile实例。
摘要由CSDN通过智能技术生成

Dockerfile

一、Dockerfile概念

1.Dockerfile中所用的所有文件一定要和Dockerfile文件在同一级父目录下,可以为Dockerfile父目录的子目录
2.Dockerfile中相对路径默认都是Dockerfile所在的目录
3.Dockerfile中一定要惜字如金,能写到一行的指令,一定要写到一行,原因是分层构建,联合挂载这个特性。
Dockerfile中每一条指令被视为一层
4.Dockerfile中指明大写(约定俗成)

Dockerfile的完整示例如下所示:
#基于centos镜像
FROM centos

#维护人的信息
MAINTAINER The CentOS Project <123456789@qq.com>

#安装httpd软件包
RUN yum -y update
RUN yum -y install httpd

#开启80端口
EXPOSE 80

#复制网站首页文件至镜像中web站点下
ADD index.html /var/www/html/index.html

#复制该脚本至镜像中,并修改其权限
ADD run.sh /run.sh
RUN chmod 775 /run.sh

#当启动容器时执行的脚本文件
CMD ["/run.sh"]
由上可知,Dockerfile结构大致分为四个部分:
  • 基础镜像信息
  • 维护者信息
  • 镜像操作指令
  • 容器启动时执行指令。

在这里插入图片描述


二、Dockerfile命令解析
1、FROM

指明构建的新镜像是来自于哪个基础镜像,例如:

FROM <image>
FROM <image>:<tag>
FROM <image>:<digest> 
三种写法,其中<tag><digest> 是可选项,如果没有选择,那么默认值为latest

FROM centos:6
2、MAINTAINER

指明镜像维护着及其联系方式(一般是邮箱地址),例如:

MAINTAINER VillianTsang <villiantsang@qq.com>

MAINTAINER并不推荐使用,更推荐使用LABEL来指定镜像作者,例如:

LABEL maintainer="villiantsang.cn"
3、RUN

构建镜像时运行的Shell命令,例如:

RUN ["yum", "install", "httpd"]
RUN yum install httpd
4、CMD

启动容器时执行的Shell命令,例如:

CMD ["-C", "/start.sh"] 
CMD ["/usr/sbin/sshd", "-D"] 
CMD /usr/sbin/sshd -D
RUN&&CMD
不要把RUNCMD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值