[发明专利]构建docker镜像的方法、装置及计算机可读存储介质在审
申请号: | 201811083312.8 | 申请日: | 2018-09-18 |
公开(公告)号: | CN110908671A | 公开(公告)日: | 2020-03-24 |
发明(设计)人: | 李海龙 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F8/61 | 分类号: | G06F8/61 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 姜雍;许蓓 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 构建 docker 方法 装置 计算机 可读 存储 介质 | ||
1.一种构建docker镜像的方法,包括:
在分布式内存系统中搜索dockerfile文件记载的基础镜像;
在分布式内存系统存有所述基础镜像的情况下,从分布式内存系统中拉取所述基础镜像;在分布式内存系统不存有所述基础镜像的情况下,在私有仓库中搜索所述基础镜像;
在私有仓库存有所述基础镜像的情况下,从私有仓库中拉取所述基础镜像;在私有仓库不存有所述基础镜像的情况下,从docker公共仓库中拉取所述基础镜像;
依赖于所述基础镜像,执行dockerfile文件记载的指令,构建docker镜像。
2.如权利要求1所述的方法,其中,
私有仓库中的基础镜像,是复制docker公共仓库中拉取频率高于预设值的基础镜像得到的;
分布式内存系统中的基础镜像,是复制私有仓库中拉取频率排前N位的基础镜像得到的,N为分布式内存系统能存储基础镜像的最大数量。
3.如权利要求1所述的方法,所述方法还包括:
将dockerfile文件中各个代码块的公用指令提取至各个代码块之前,并删除重复的公用指令,以便docker引擎优先执行dockerfile文件中的公用指令,后执行dockerfile文件中各个代码块的非公用指令。
4.如权利要求1所述的方法,所述方法还包括:
为dockerfile文件记载的基础镜像或软件包标注版本号,以便docker引擎使用与版本号对应的基础镜像或软件包构建docker镜像。
5.如权利要求1所述的方法,所述方法还包括:
从dockerfile文件中提取目标软件安装指令的软件名;
利用所述软件名查询预先定义的软件名与软件功能的映射关系,确定所述软件名对应的软件功能;
若dockerfile文件中已存在其它软件安装指令,且所述其它软件安装指令的软件名与所述软件功能相对应,则删除目标软件安装指令。
6.如权利要求1所述的方法,所述方法还包括:
在dockerfile文件中,利用指令串联符号,将删除软件包的指令串联在其它操作所述软件包的指令之后,以便docker引擎在相同的镜像层对所述软件包执行其它操作之后删除所述软件包。
7.如权利要求1所述的方法,所述方法还包括:
利用预先定义的软件功能分类表,确定属于相同软件功能类别的软件;
利用指令串联符号,将dockerfile文件操作相同软件功能类别的软件的指令进行串联,得到串联指令;
采用相同的run指令执行所述串联指令,以使得相同软件功能类别的软件位于所构建docker镜像的相同镜像层。
8.如权利要求1所述的方法,所述执行dockerfile文件记载的指令,构建docker镜像包括:
在构建每层docker镜像结束前,删除预设文件目录中的安装文件和临时文件。
9.如权利要求1所述的方法,所述执行dockerfile文件记载的指令,构建docker镜像包括:
加载过滤文件,所述过滤文件包含构建上下文目录中需要被排除的文件和目录;
打包构建上下文目录时,根据所述过滤文件排除所述文件和目录。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811083312.8/1.html,转载请声明来源钻瓜专利网。