DockerFile及其指令详解

Dockerfile是构建Docker镜像的命令文件,文件中的每一行指令会构建为一层的镜像,理解这点很重要,因为这是后续我们做镜像缩减的重要手段。

Dockerfile可以通过 docker  build 命令来构建镜像,运行该命令需要指定DockerFile的位置以及要构建的镜像名称。

下面列出我们经常使用的DockerFile命令作为参考:

FROM                # 构建自己所需镜像使用的基础镜像

MAINTAINER     # 即将构建镜像的作者,格式为: 姓名<邮箱>

ENV                   #  设置环境变量

USER                #  为RUN、CMD、ENTRYPOINT执行命令指定运行用户

WORKDIR         #  镜像启动后在哪个工作目录

RUN                   # 镜像构建时需要的命令

COPY                #  拷贝文件或目录到镜像中

ADD                   # 需要向镜像中注入的配置文件或者压缩包等

VOLUME           #  挂载的目录,可以是匿名挂载或者具名挂载

EXPOSE           #  声明容器中运行的服务的端口

CMD                 #   容器启动的时候运行的指令,若写多个的话,只有一个生效,可以运行时在容器外部重新指定

ENTRYPOINT  #  与CMD命令类似,但ENTRYPOINT可以在容器外追加命令

ONBUILD         #  当构建一个被继承DockerFile,这时会运行ONBUILD命令

 

简单示例如下:

[root@k8s-node2 ~]# cat Dockerfile 
FROM scratch
MANTAINER sean<sean@163.com>
ADD alpine-minirootfs-3.8.4-x86_64.tar.gz
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install httpd
EXPOSE 80
CMD ['echo','$MYPATH']

通过这个Dockerfile我们构建了一个包含httpd的小镜像,然后我们进入到Dockerfile所在的目录,运行如下命令即可构建成功。

[root@k8s-node2 ~]# docker build -t myhttp .      # 注意最后的点代表当前目录

是不是很简单?这样我们不论在哪台服务器上需要安装http,直接运行构建的镜像一个简单的http服务就启动了。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值