Dockerfile是用来构建docker镜像的文件,实际上就是一个命令参数脚本,是一个创建镜像所有命令的文本文件, 包含了一条条指令和说明,每条指令构建一层。因此每一条指令的内容, 就是描述该层如何构建的过程。有了Dockefile, 就可以制定自己的docker镜像规则,只需要在Dockerfile上添加或者修改指令, 就可生成docker 镜像。
宜信普惠了解到,通过编写Dockerfile生磁镜像,可以为开发、测试团队提供基本一致的环境,从而提升开发、测试团队的效率,不用再为环境不统一而发愁,同时运维也能更加方便地管理我们的镜像。
Dockerfile是面向开发的,我们以后要发布项目,做镜像,都需要编写Dockerfile文件。那么,如何,快速有效的编写Dockerfile文件呢?
宜信普惠认为,高效率的编写Dockerfile文件可以遵循以下要点:Dockerfile文件不宜过长,层级越多,最终制作出来的镜像也就越大;构建出来的镜像不要包含不需要的内容,如日志、安装临时文件等;尽量使用运行时的基础镜像,不需要将构建时的过程也放到运行时的Dockerfile里。
Docker在升级到Docker 17.05之后就能支持多阶构建了,为了使镜像更加小巧,我们采用多阶构建的方式来打包镜像。在多阶构建出现之前,我们通常使用一个Dockerfile或多个Dockerfile来构建镜像。
完成多阶段构建,我们只需要在Dockerfile中多次使用FORM声明,每次FROM指令可以使用不同的基础镜像,并且每次FROM指令都会开始新的构建,我们可以选择将一个阶段的构建结果复制到另一个阶段,在最终的镜像中只会留下最后一次构建的结果。
宜信普惠指出,多阶构建给我们带来很多便利,最大的优势是在保证运行镜像足够小的情况下,减轻了Dockerfile的维护负担,因此我们极力推荐使用多阶构建来将代码打包成Docker 镜像。