Docker镜像,已经是我们这些IT工程师工作中,不可或缺的一部分,可以说是我们工作的基础,但是docker镜像本质上,到底是什么东西?我们生成一个docker镜像到底做了什么操作呢?
01Dockerfile生成docker镜像如想要生成一个我们自己的docker镜像,可以先编写自己的dockerfile文件,然后基于此文件使用dockerbuild生成镜像,那这个过程中到底发生了什么呢?
发送Buildcontext
在执行dockerbuild命令时,会在末尾加上一个“.”,这个点就是docker的构建上下文,在linux下“.”即代表当前目录;docker构建镜像需要使用到构建上下文里的文件,所以需要将buildcontext下的文件遍历发送给docker守护进程,这样我们就可以在构建开始的日志信息中,看到如下信息:
SendingbuildcontexttoDockerdaemonxxx.xxMB
这条信息是在告知需要发送给dockerdaemon的文件有多少MB大小。
校验dockerfile命令并执行
Dockerdaemon在执行dockerfile的命令之前都会先预校验一下命令是不是符合语法,不符合的将返回一个错误;命令都没问题后dockerdaemon会逐条执行命令,执行的过程如下:在原来的镜像上启动一个容器,在容器内执行命令,执行完写操作,然后dockerdaemon执行一次