[发明专利]构建docker镜像的方法、装置及计算机可读存储介质在审
申请号: | 201811083312.8 | 申请日: | 2018-09-18 |
公开(公告)号: | CN110908671A | 公开(公告)日: | 2020-03-24 |
发明(设计)人: | 李海龙 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F8/61 | 分类号: | G06F8/61 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 姜雍;许蓓 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 构建 docker 方法 装置 计算机 可读 存储 介质 | ||
本公开提供了一种构建docker镜像的方法、系统、装置及计算机可读存储介质,涉及计算机技术领域。其中的构建docker镜像的方法包括:在分布式内存系统中搜索dockerfile文件记载的基础镜像;在分布式内存系统存有基础镜像的情况下,从分布式内存系统中拉取基础镜像;在分布式内存系统不存有基础镜像的情况下,在私有仓库中搜索基础镜像;在私有仓库存有基础镜像的情况下,从私有仓库中拉取基础镜像;在私有仓库不存有基础镜像的情况下,从docker公共仓库中拉取基础镜像;依赖于基础镜像,执行dockerfile文件记载的指令,构建docker镜像。本公开能够缩短docker镜像的构建时间,提高docker镜像的构建速度和构建效率。
技术领域
本公开涉及计算机技术领域,特别涉及一种构建docker镜像的方法、装置及计算机可读存储介质。
背景技术
Docker是一个开源的应用容器引擎,让开发者可以将应用及依赖包打包至一个可移植的容器中,然后发布到linux机器上。基于linux平台上的多项开源技术,docker能够提供高效、敏捷、轻量级的容器,对应用的封装、分发、部署、运行的生命周期进行管理。
Docker镜像(image)是docker的核心概念,是用来启动容器的只读模版,是启动容器所需要的rootfs(root file system,根文件系统)。docker镜像由多个只读层文件系统叠加而成,启动一个容器的时候,docker会加载镜像层并在镜像层上添加一个可写层。容器上所做的任何更改都记录在可写层上。
Docker镜像的构建主要通过编写dockerfile文件来定制,在dockerfile中每运行一个run指令就会增加一个镜像层,并生成新的镜像文件。
发明内容
本公开解决的一个技术问题是,如何提高docker镜像的构建速度。
根据本公开实施例的一个方面,提供了一种构建docker镜像的方法,包括:在分布式内存系统中搜索dockerfile文件记载的基础镜像;在分布式内存系统存有基础镜像的情况下,从分布式内存系统中拉取基础镜像;在分布式内存系统不存有基础镜像的情况下,在私有仓库中搜索基础镜像;在私有仓库存有基础镜像的情况下,从私有仓库中拉取基础镜像;在私有仓库不存有基础镜像的情况下,从docker公共仓库中拉取基础镜像;依赖于基础镜像,执行dockerfile文件记载的指令,构建docker镜像。
在一些实施例中,私有仓库中的基础镜像,是复制docker公共仓库中拉取频率高于预设值的基础镜像得到的;分布式内存系统中的基础镜像,是复制私有仓库中拉取频率排前N位的基础镜像得到的,N为分布式内存系统能存储基础镜像的最大数量。
在一些实施例中,该方法还包括:将dockerfile文件中各个代码块的公用指令提取至各个代码块之前,并删除重复的公用指令,以便docker引擎优先执行dockerfile文件中的公用指令,后执行dockerfile文件中各个代码块的非公用指令。
在一些实施例中,该方法还包括:为dockerfile文件记载的基础镜像或软件包标注版本号,以便docker引擎使用与版本号对应的基础镜像或软件包构建docker镜像。
在一些实施例中,该方法还包括:从dockerfile文件中提取目标软件安装指令的软件名;利用软件名查询预先定义的软件名与软件功能的映射关系,确定软件名对应的软件功能;若dockerfile文件中已存在其它软件安装指令,且其它软件安装指令的软件名与软件功能相对应,则删除目标软件安装指令。
在一些实施例中,该方法还包括:在dockerfile文件中,利用指令串联符号,将删除软件包的指令串联在其它操作软件包的指令之后,以便docker引擎在相同的镜像层对软件包执行其它操作之后删除软件包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811083312.8/2.html,转载请声明来源钻瓜专利网。