docker(五):dockerFile详述

初见dockerFile:https://blog.csdn.net/ak739105231/article/details/105856710

一、Docker是什么?

Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚步。

构建三步骤:1.编写dockerfile文件;2.docker biuld 将dockerfile打包成镜像文件;3.docker run 实例化镜像文件,容器运行

dockerfile示例:在阿里云的容器镜像服务中选择镜像,可以进入GitHub,看到对应镜像的dockerfile,下面是centos的dockerfile:

上面截图中的:scratch,是所有镜像的源镜像(base镜像);(相当于java中的object类);DockerHub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的;

上面截图中的:红色字体(如:FROM),称为“保留字指令”;必须大写;

二、Dockerfile构建过程解析

Dockerfile内容基础知识

1.每条保留字指令都必须为大写字母,且后面要跟随至少一个参数

2.指令按照从上到下,顺序执行;

3.#表示注释

4.每条指令都会创建一个新的 镜像层,并对镜像进行提交;

Docker执行Dockerfile的大致流程:

1.docker从基础镜像(源镜像)运行一个容器

2.执行一条指令并对容器作出修改

3.执行类似docker commit的操作提交一个新的镜像层

4.docker再基于刚提交的镜像运行一个新容器

5.执行dockerfile中的下一条指令直到所有指令都执行完毕;

从应用软件的角度来看,dockerfile、docker镜像、docker容器分别代表:原材料、交付品、软件的运行态

三、DockerFile保留字指令

FROM:基础镜像,当前新镜像是基于哪个镜像的

MAINTAINER:镜像维护者的姓名和邮箱地址

RUN:容器构建时需要运行的命令

EXPOSE:当前容器对外暴露出的端口

WORKDIR:指定在创建容器后,终端默认登录的进来工作目录,一个落脚点;

ENV:用来在构建镜像过程中设置环境变量

ADD:将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包

COPY:类似ADD,拷贝文件和目录到镜像中,但没有ADD强大,ADD是拷贝+解压;COPY仅是拷贝;格式:COPY src dest   或者COPY['src','dest']

VOLUME:容器数据卷,用于数据保存和持久化工作

CMD:指定一个容器启动时要运行的命令,dockerfile中可以有多个CMD指令,build时都会执行;但docker run时,是最后一个生效,CMD会被docker run之后的参数替换;

ENTRYPOINT:指定一个容器启动时要运行的命令,ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序和参数,区别:docker run之后的参数不会替换ENTRYPOINT命令,而是追加。

ONBUILD:当构建一个被继承的Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发。

四、根据实例,理解DockerFile,理解保留字指令

案例1:自定义centos镜像:理解基本保留字指令

在精简版centos,没有vim,ifconfig等常用的工具,因此,我们需要在精简版centos上备注一些自己需要的工具;所以需要自定义自己需要的镜像;

步骤1:编写DockerFile

步骤2:构建镜像:docker build -f /mydocker/DockerFile -t centos:6.7.8 .

步骤3:docker history 镜像ID或者镜像名称:tag//查看镜像形成过程

步骤4:实例化容器并运行:docker run -it 镜像name:tag或id

可以看出dockerFile的效果;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值