DockerDocker

【现学现忘Docker基础】— 28.DockerFile文件详

2021-04-17  本文已影响0人  繁华似锦Fighting

1、DockerFile文件说明

(1)DockerFile文件是什么?

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

即:Dockerfile仅仅是用来制作镜像的源码文件,也可以说成是一个脚本文件。

(2)如何查看Docker Hub中镜像的Dockerfile文件

进入Docker Hub官网:https://hub.docker.com/

我们以centos镜像为例。


点击进入镜像,在Supported tags and respective Dockerfile links:支持的标签和相应的Dockerfile链接。

如下:


点击对应的版本,就会跳转到GitHub中存放centos的Dockerfile文件网站,如下图:

我们就能够查看镜像对应的Dockerfile文件内容了。

2、Dockerfile构建过程解析

(1)Docker容器构建三步骤

(2)Dockerfile文件的基本结构

Dockerfile 一般分为:基础镜像、镜像元信息(作者等信息)、镜像操作指令和容器启动时执行指令。

我们以centos镜像的Dockerfile文件为例,如下:

# 1.基础镜像
FROM scratch

# 2.镜像元信息
MAINTAINER https://github.com/CentOS/sig-cloud-instance-images

# 3、镜像操作指令和参数(重点)
ADD centos-6-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="20181006"

# 4.容器启动时执行指令
CMD ["/bin/bash"]

提示:

  • Dockerfile文件中的注释为#
  • FROM scratch:为所有镜像的基础镜像。
  • LABEL 指令用来给镜像以键值对的形式添加一些元数据(metadata)。其实就是一些标签,可以在inspect命令中看到。
  • 很多官方镜像都是基础包,很多功能没有,我们通常会自己搭建自己的镜像!

(3)Dockerfile注意事项

(4)Docker执行Dockerfile的大致流程

  1. Docker从基础镜像运行一个容器。
  2. 执行一条指令并对容器作出修改。
  3. 执行类似docker commit的操作,来提交一个新的镇像层。
  4. Docker再基于刚提交的镜像运行一个新容器。
  5. 执行Dockerfile中的下一条指令,依次循环上面步骤,直到所有指令都执行完成。

3、总结

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

  1. Dockerfile是软件的原材料。
  2. Docker镜像是软件的交付品。
  3. Docker容器则可以认为是软件的运行态。

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


说明:

4、DockerFile保留字指令

DockerFile常用指令如下图:


上一篇下一篇

猜你喜欢

热点阅读