DockerFIle

DockerFIle

是什么?

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

构建三步骤:

编写DockerFile文件 docker build docker run

Centos Dockerfile文件案例:

FROM scratch
ADD centos-7-x86_64-docker.tar.xz /
​
LABEL \
    org.label-schema.schema-version="1.0" \
    org.label-schema.name="CentOS Base Image" \
    org.label-schema.vendor="CentOS" \
    org.label-schema.license="GPLv2" \
    org.label-schema.build-date="20201113" \
    org.opencontainers.image.title="CentOS Base Image" \
    org.opencontainers.image.vendor="CentOS" \
    org.opencontainers.image.licenses="GPL-2.0-only" \
    org.opencontainers.image.created="2020-11-13 00:00:00+00:00"
​
CMD ["/bin/bash"]

DockerFile文件过程解析

  • Dockerfile内容基础知识

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

    • 指令按照从上到下 顺序执行

    • #表示注释

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

  • Docker执行DockerFile的大致流程

    • docker从基础镜像运行一个容器

    • 执行一条指令并对容器做出修改

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

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

    • 执行dockerfile中的下一条指令直到所有指令都执行完成

  • 总结:

    • 从应用软件角度来看,Dockerfile Docker镜像 Docker容器 分别代表软件的三个不同阶段

    • DockerFile 是软件的原材料

    • Docker镜像是软件的交付品

    • Docker容器则可以认为是软件的运行态

    • DockerFile 面向开发 Docker镜像成为交付标准 Docker容器则涉及部署与运维 三者不可缺一,合力充当Docker体系的基石

DockerFile体系结构

- FROM   基础镜像 当前新镜像是基于哪个镜像的
​
- MAINTAINER 镜像维护者的姓名和邮箱地址
​
- RUN  容器构建时需要运行的命令
- EXPOSE  当前容器对外暴露出的端口
- WORKDIR 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
- ENV  用来在构建镜像过程中设置环境变量
​
- ADD  将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
​
- COPY  类似ADD  拷贝文件和目录到镜像中  将从构建上下文目录中<源路径> 的文件/目录复制到新的一层的镜像内的<目标路径>位置
​
- VOLUME 容器数据卷 用于数据保存和持久化工作
​
- CMD  指定一个容器启动时要运行的命令  Dockerfile中可以有多个CMD命令,但只有最后一个生效,CMD会被docker run 之后的参数替换。
​
- ENTRYPOINT  指定一个容器启动时要运行的命令     ENTRYPOINT的目的和CMD一样,都是在指定容器启动程序及参数
​
- ONBUILD  当构建一个被继承的 Dockerfile时运行命令,父镜像在被子继承后父镜像的onbuild被触发

 

image-20201223095145916

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张铎(信念)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值