一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

镜像处理方法、装置和存储介质与流程

2021-11-26 21:36:00 来源:中国专利 TAG:


1.本发明涉及云计算容器技术领域,尤其涉及一种镜像处理方法、装置和存储介质。


背景技术:

2.随着软件系统架构中的容器化技术的发展,越来越多的容器被作为承载应用程序的基础设施。然而,一方面,大多数的应用程序镜像是基于一个或多个已有的基础镜像(ubnutu)来构建的,这些应用程序镜像中往往包含了重复的、冗余的基础镜像,若基础镜像的数据量越大,数量越多,那么待发布的应用程序镜像的整体尺寸也越大。另一方面,随着应用程序的版本迭代和更替,新版本应用程序进行发布时其部署的生产环境中已存有上代版本的应用程序镜像,在相近业务的版本修改不多的情况下,新版本应用程序镜像中包含了大量重复的上代版本镜像,导致待发布的新版本应用程序镜像的整体尺寸较大。


技术实现要素:

3.本发明实施例的主要目的在于提出一种镜像处理方法、装置和存储介质,旨在减小待发布的镜像的整体尺寸,进而提高应用程序镜像的发布和部署的效率。
4.第一方面,本发明实施例提供了一种镜像处理方法,所述方法包括以下步骤:
5.获取待处理的应用程序镜像,并获取所述应用程序镜像的关联镜像;
6.对所述关联镜像和所述应用程序镜像进行差异对比,得到差异镜像;
7.基于所述差异镜像和关联镜像,确定待发布的目标镜像。
8.第二方面,本发明实施例提供了另一种镜像处理方法,所述方法包括以下步骤:
9.获取发布的目标镜像,其中,所述目标镜像为差异镜像或者为包含关联镜像和差异镜像的镜像,所述关联镜像与待发布的应用程序镜像相关联,所述差异镜像是对所述关联镜像和所述应用程序镜像进行差异对比得到的;
10.根据所述目标镜像,还原所述应用程序镜像。
11.第三方面,本发明实施例还提出了一种镜像处理装置,所述装置包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现前述方法的步骤。
12.第四方面,本发明提供了一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述方法的步骤。
13.本发明提出的镜像处理方法、装置和存储介质,其通过获取待处理的应用程序镜像,并获取该应用程序镜像的关联镜像,然后对该关联镜像和应用程序镜像进行差异对比,得到差异镜像,再基于该差异镜像和关联镜像,确定待发布的目标镜像,可以极大地减小待发布的镜像的整体尺寸,达到了使用小尺寸的镜像发布大尺寸的应用程序镜像的目的,进而提高应用程序镜像的发布和部署的效率。
附图说明
14.图1是本发明实施例提供的一种镜像处理方法的流程示意图;
15.图2是本发明实施例提供的镜像差异对比的示意图;
16.图3是本发明实施例提供的另一种镜像处理方法的流程示意图;
17.图4是本发明实施例提供的镜像合并还原的示意图;
18.图5是本发明实施例提供的镜像处理装置的结构示意框图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
21.下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
22.请参照图1,图1为本发明的实施例提供的一种镜像处理方法的流程示意图。
23.如图1所示,该镜像处理方法包括步骤s101至步骤s103。
24.步骤s101:获取待处理的应用程序镜像,并获取所述应用程序镜像的关联镜像。
25.用户在发布应用程序时,需要通过容器技术在制作环境中生成对应的应用程序镜像,然后将该应用程序镜像发布到生产环境中,能够快速完成业务交付。而在部署该应用程序时,直接通过发布的应用程序镜像即可启动对应的应用程序,能够快速完成业务部署。
26.其中,应用程序镜像可用于创建应用程序的业务容器,或启动创建好的该业务容器,以发布或启动对应的应用程序。例如应用程序镜像可为nginx镜像,该nginx镜像可用于创建或启动nginx容器,以发布或启动对应的应用程序。需要说明的是,待处理的应用程序镜像包括待发布的应用程序镜像,例如待发布的nginx镜像。在一些实施例中,该应用程序镜像例如nginx镜像,也可用于高性能的http服务器和反向代理web服务器。
27.其中,关联镜像包括应用程序镜像的上代版本镜像和基础镜像中的任一项。需要说明的是,随着应用程序的开发和迭代,应用程序镜像的版本也逐步升级和演进,由此产生应用程序镜像的多代版本镜像,上代版本镜像为待处理的应用程序镜像的上代版本应用程序镜像。在一些实施例中,该上代版本镜像也可为待发布的应用程序镜像的上n代版本镜像,n大于或等于1,本发明对此不做具体限定。
28.需要说明的是,基础镜像为应用程序镜像中的镜像数据,一般而言,应用程序镜像是由一个或多个基础镜像构建而来的。在一些实施例中,应用程序镜像中标注有基础镜像指示信息,该基础镜像指示信息用于指示该应用程序镜像中包含的基础镜像,通过查询每个应用程序镜像中标注的基础镜像指示信息,可以快速知晓每个应用程序镜像中包含的基础镜像。在另一些实施例中,通过分析每个应用程序镜像的构建文件,可以实时地确定应用程序镜像的基础镜像,并从基础镜像的数据仓库中快速获取对应的基础镜像。
29.在一实施例中,当存在多个待处理的应用程序镜像时,构成每个待处理的应用程序镜像的基础镜像可能相同。例如,当存在应用程序镜像imagea,imageb和imagec时,该imagea,imageb和imagec都存在同样的基础镜像,即ubnutu镜像。在另一实施例中,当存在多个应用程序镜像时,该多个应用程序镜像中,存在至少两个应用程序镜像的基础镜像相同,其他的应用程序镜像的基础镜像不相同。例如,当存在应用程序镜像imagea,imageb、imagec和imaged时,该imagea、imageb和imagec都存在同样的基础镜像即ubnutu镜像,而imaged的基础镜像为centos镜像,不同于ubnutu镜像。
30.在一实施例中,关联镜像包括至少两个待处理的应用程序镜像共有的至少一个基础镜像。示例性的,当存在两个应用程序镜像imagea和imageb时,该imagea和imageb都存在同样的基础镜像例如ubnutu镜像,则该ubnutu镜像为imagea和imageb共有的基础镜像,该ubnutu镜像可认定为关联镜像,在后续发布镜像时,只需发布一个ubnutu镜像即可,减少了原来需要发布两个ubnutu镜像的数据量,提高了发布的速度。
31.示例性的,当存在多个待处理的应用程序镜像imagea,imageb、imagec和imaged时,该imagea和imageb都存在同样的ubnutu镜像,而imagec和imaged存在同样的centos镜像,则该ubnutu镜像为imagea和imageb共有的基础镜像,该centos镜像为imagec和imaged共有的基础镜像,因此该ubnutu镜像和centos镜像可同等的认定为关联镜像,在后续发布镜像时,只需发布一个ubnutu镜像和一个centos镜像即可,无需发布发布两个ubnutu镜像和两个centos镜像,提高了镜像的发布效率。
32.步骤s102:对所述关联镜像和所述应用程序镜像进行差异对比,得到差异镜像。
33.在获取到关联镜像和待处理的应用程序镜像之后,通过镜像管理工具,对关联镜像和待处理的应用程序镜像进行差异对比,以获取关联镜像与待处理的应用程序镜像之间的差异镜像。其中,该差异镜像的尺寸小于待处理的应用程序镜像的尺寸,即关联镜像与待处理的应用程序镜像之间存在共有的镜像数据,使得对关联镜像和待处理的应用程序镜像进行差异对比之后,生成的差异镜像的尺寸要小于待处理的应用程序镜像的尺寸。
34.示例性地,镜像管理工具可以包括容器引擎剥离的镜像制作工具,例如buildkit工具;或者,镜像管理工具也可以包括与容器引擎合并的镜像管理工具,例如相应的docker引擎,本发明不做具体限定。通过将镜像管理工具进行改造,并部署到镜像构建环境,使其可以准确地对关联镜像和待处理的应用程序镜像进行差异对比,得到差异镜像。
35.其中,差异镜像可以为一个或多个。例如,差异镜像包括上代版本应用程序镜像imagea1,imageb1和imagen1与待发布应用程序镜像imagea2,imageb2和imagen2之间各自进行差异对比而生成的镜像,包括deltaa,deltab和deltan。将差异镜像deltaa,deltab和deltan镜像作为待发布的镜像版本,该待发布的镜像版本deltaa,deltab和deltan的整体尺寸远小于上述应用程序镜像imagea1,imageb1和imagen1的尺寸,极大减小了待发布的镜像的整体尺寸。
36.在一实施例中,对关联镜像和待处理的应用程序镜像进行差异对比,得到差异镜像的具体步骤包括:将关联镜像中的每个镜像层与上述应用程序镜像中的对应的镜像层进行差异对比,得到应用程序镜像中的每个镜像层各自对应的差异数据;获取待处理的应用程序镜像的元数据,并根据元数据和应用程序镜像中的每个镜像层各自对应的差异数据,确定差异镜像。
37.需要说明的是,容器镜像是由一系列的镜像层构成,每一层镜像层都只包含上一层镜像层的变化数据,形成堆栈式结构。该元数据包括应用程序镜像的每个镜像层的分层信息,基于应用程序镜像的每个镜像层的分层信息,将应用程序镜像中的每个镜像层各自对应的差异数据进行组合,即可得到差异镜像。通过逐层地将关联镜像中的每个镜像层与该应用程序镜像中的对应的镜像层进行差异对比,可以准确地确定每个镜像层各自对应的差异数据,从而准确地得到差异镜像。
38.示例性地,如图2所示,关联镜像10包括有镜像层layer1至layer5,待处理的应用程序镜像20包括有镜像层layer1至layer6。由图2可知,待处理的应用程序镜像20相对于关联镜像10的差异镜像层包括有layer4、layer5和layer6。将关联镜像10中的每个镜像层与该应用程序镜像20中的对应的镜像层进行差异对比,例如将关联镜像10中的layer1至layer3分别与应用程序镜像20中的layer1至layer3进行差异对比,得到的3个差异数据为空集;将关联镜像10中的layer4和layer5分别与应用程序镜像20中的layer4和layer5进行差异对比,得到应用程序镜像中的layer4对应的差异数据为数据块b,以及layer5对应的差异数据为数据块a;应用程序镜像20的镜像层layer6中的全部数据亦为差异数据。获取待处理的应用程序镜像20的元数据,并根据该元数据和应用程序镜像20中的每个镜像层layer1至layer6各自对应的差异数据,确定差异镜像30,其中,差异镜像30包括有镜像层layer1至layer6,layer1至layer3为空集,layer4包括有数据块b,layer5包括有数据块a,差异镜像30还包括有应用程序镜像20的镜像层layer6。
39.在一实施例中,将关联镜像中的每个镜像层与应用程序镜像中的对应的镜像层进行差异对比的具体方式为:按照镜像层的字节流,将关联镜像中的每个镜像层与应用程序镜像中的对应的镜像层进行差异对比;或者,按照镜像层的目录和文件,将关联镜像中的每个镜像层与应用程序镜像中的对应的镜像层进行差异对比。可以理解的是,也可以选择其他的差异对比策略或者算法,将关联镜像中的每个镜像层与应用程序镜像中的对应的镜像层进行差异对比,本发明对此不做具体限定。需要说明的是,按照每个镜像层的字节流进行比对,或者按照每个镜像层的目录和文件进行比对,都能精准地确定每个镜像层各自对应的差异数据,从而准确地得到比应用程序镜像的大小要小的差异镜像,大大减小了待发布的镜像的整体尺寸,进而提高应用程序镜像的发布和部署的效率。
40.步骤s103:基于所述差异镜像和关联镜像,确定待发布的目标镜像。
41.得到差异镜像之后,基于该差异镜像和关联镜像,确定待发布的目标镜像。例如,根据该关联镜像的类型,确定待发布的目标镜像是差异镜像,还是为包含关联镜像和差异镜像的镜像。需要说明的是,无论待发布的目标镜像为差异镜像,或者待发布的目标镜像为包含关联镜像和差异镜像的镜像,该待发布的目标镜像的尺寸都小于待处理的应用程序镜像的尺寸,以实现减小待发布的镜像的整体尺寸的功能。
42.在一实施例中,基于差异镜像和关联镜像,确定待发布的目标镜像的步骤包括:若关联镜像为应用程序镜像的上代版本镜像,则将差异镜像作为待发布的目标镜像;若关联镜像为应用程序镜像的基础镜像,则将差异镜像和基础镜像作为待发布的目标镜像。该待发布的目标镜像的大小都小于待处理的应用程序镜像的大小,从而提高了待发布镜像的发布效率。
43.在一实施例中,确定待发布的目标镜像之后,发布该目标镜像。需要说明的是,将
目标镜像通过网络、u盘、iso或其它媒介发布到生产环境,例如发布到手机端的容器中,可以大大减少发布的应用程序镜像版本的整体尺寸,提高应用程序镜像的发布效率。此外,生产环境中保存有上代版本镜像,将生产环境中的上代版本镜像与对应的差异镜像进行合并可以得到完整的新版本应用程序镜像,当关联镜像为应用程序镜像的基础镜像,在生产环境中将差异镜像和基础镜像进行合并也可以得到完整的应用程序镜像。如此,在保证发布镜像功能的完备性的同时,亦达到了快速地发布应用程序镜像的目的。
44.示例性地,在发布目标镜像的过程中,通过服务器发出的镜像导入指令,将目标镜像导出为预设格式,例如将差异镜像deltanginx镜像导出为deltanginx.tar文件,再进行打包压缩,并发布到生产环境。或者,通过镜像拉取指令,将目标镜像从远端的镜像仓库中拉取镜像到本地,例如关联镜像busybox镜像拉取到本地,即可将目标镜像发布到生产环境。
45.上述实施例提供的镜像处理方法,通过获取待处理的应用程序镜像,并获取该应用程序镜像的关联镜像,然后对该关联镜像和应用程序镜像进行差异对比,得到差异镜像,再基于该差异镜像和关联镜像,确定待发布的目标镜像,可以极大地减小待发布的镜像的整体尺寸,达到了使用小尺寸的镜像发布大尺寸的应用程序镜像的目的,提高了应用程序镜像的发布和部署的效率。
46.请参照图3,图3为本发明实施例提供的另一种镜像处理方法的流程示意图。
47.如图3所示,该镜像处理方法包括步骤s201和步骤s202。
48.步骤s201:获取发布的目标镜像,其中,所述目标镜像为差异镜像或者为包含关联镜像和差异镜像的镜像。
49.需要说明的是,在制作环境中获取发布的差异镜像或者发布的包含关联镜像和差异镜像的镜像,该关联镜像与待发布的应用程序镜像相关联,例如该关联镜像为该应用程序镜像的上代版本镜像和基础镜像中的任一项,该差异镜像是对关联镜像和应用程序镜像进行差异对比得到的,该差异镜像的尺寸要小于该应用程序镜像的尺寸。
50.在一实施例中,关联镜像包括至少两个应用程序镜像中所共有的至少一个基础镜像。示例性地,每个应用程序镜像至少包括一个基础镜像,当存在5个应用程序镜像时,即至少存在5个基础镜像,这5个基础镜像可能为同一类型的基础镜像a,此时关联镜像则为该同一类型的基础镜像a;如果这5个基础镜像中,存在三个基础镜像为同一类型的基础镜像a,另外两个基础镜像为同一类型的基础镜像b,此时关联镜像则包括基础镜像a和基础镜像b。
51.步骤s202:根据所述目标镜像,还原所述应用程序镜像。
52.获取发布的目标镜像之后,将目标镜像导入镜像管理工具,以还原应用程序镜像。其中,镜像管理工具包括与容器引擎合并的镜像管理工具,例如docker引擎。或者,镜像管理工具也可以包括容器引擎剥离的镜像制作工具,例如buildkit工具。通过将镜像管理工具进行改造,并部署到业务生产环境,使其可以准确地将目标镜像还原成应用程序镜像,从而得到功能完备的应用程序镜像,提高应用程序镜像发布和部署的效率。
53.在一实施例中,目标镜像为差异镜像,根据目标镜像还原应用程序镜像的方法包括:获取应用程序镜像的上代版本镜像;将差异镜像与上代版本镜像进行合并还原,得到应用程序镜像。需要说明的是,该上代版本镜像已发布在制作环境中,从制作环境获取应用程序镜像的上代版本镜像,将差异镜像与上代版本镜像进行合并还原,可以得到应用程序镜
像,大大减小了发布的新版本应用程序镜像的整体尺寸,提高了新版本应用程序镜像的发布和部署的效率。
54.示例性地,若生产环境中已运行有71个应用程序镜像的老版本,总尺寸为3gbyte大小。而待发布的新版本应用程序镜像总大小为3.3gbyte。将每个子程序的老版本镜像从新版本镜像中抽离,抽离后生成待发布的子应用程序镜像,这些新的、待发布的子应用程序镜像总大小约为0.3gbyte,整个待发布的应用程序镜像大小减少了约90%。因此,待发布的应用程序镜像尺寸大大减少,发布应用程序镜像的速度大大提高。如果新版本应用程序仅仅是修复几个故障即进行新一轮发布,程序代码修改量是相对比较少的。那么在这种情况下,新老版本镜像尺寸的变化更少,创建生成的差异镜像的镜像尺寸亦将更小,最终发布的应用程序镜像的尺寸也比较小,达到了使用小尺寸的镜像发布大尺寸的应用程序镜像的目的。
55.示例性地,在想要发布总大小为3gbyte的71个应用程序镜像时,确定该71个应用程序镜像的基础镜像busybox大小为25mbyte,要将基础镜像busybox从71个应用程序镜像程序中抽离,生成新的71个应用程序镜像的差异镜像delta镜像。并将这71个差异镜像delta镜像和基础镜像busybox一并作为待发布的目标镜像进行发布。虽然发布的应用程序镜像多了一个基础镜像busybox,但无需发布70个应用程序镜像的基础镜像busybox,故发布的镜像总大小缩减到约1.5g,发布的镜像总大小减少了约50%,极大提高了应用程序镜像的发布和部署的效率。
56.进一步地,将目标镜像与上代版本镜像进行合并还原得到应用程序镜像的具体方式包括:将差异镜像的每个镜像层与上代版本镜像中的对应的镜像层进行合并处理,得到上代版本镜像中的每个镜像层各自对应的合并数据;获取差异镜像的元数据,并根据元数据和上代版本镜像中的每个镜像层各自对应的合并数据,确定还原的应用程序镜像。需要说明的是,该元数据包括应用程序镜像的每个镜像层的分层信息,基于差异镜像的每个镜像层的分层信息,将上代版本镜像中的每个镜像层各自对应的合并数据进行合并组合,即可得到还原的应用程序镜像。
57.其中,差异镜像可以为一个或多个。例如,上代版本应用程序镜像包括imagea1,imageb1和imagen1,差异镜像包括deltaa,deltab和deltan。将差异镜像deltaa的每个镜像层与上代版本镜像imagea1中的对应的镜像层进行合并处理,可以得到合并数据a1;将差异镜像deltab的每个镜像层与上代版本镜像imageb1中的对应的镜像层进行合并处理,可以得到合并数据b1;将差异镜像deltan的每个镜像层与上代版本镜像imagen1中的对应的镜像层进行合并处理,可以得到合并数据n1。将差异镜像deltaa的元数据与合并数据a1进行结合,可以确定还原的应用程序镜像imagea2;将差异镜像deltab的元数据与合并数据b1进行结合,可以确定还原的应用程序镜像imageb2;将差异镜像deltan的元数据与合并数据n1进行结合,可以确定还原的应用程序镜像imagen2。
58.在一实施例中,目标镜像为包含关联镜像和差异镜像的镜像,该关联镜像可为基础镜像,根据目标镜像还原应用程序镜像的方法包括:将差异镜像的每个镜像层与关联镜像中的对应的镜像层进行合并处理,得到差异镜像中的每个镜像层各自对应的合并数据;获取差异镜像的元数据,并根据元数据和差异镜像中的每个镜像层各自对应的合并数据,确定还原的应用程序镜像。
59.示例性地,如图4所示,关联镜像10为基础镜像imagea,该imagea包括有镜像层layer1至layer5,差异镜像20包括有镜像层layer1至layer6。由图4可知,差异镜像20相对于关联镜像10的差异镜像层包括有layer4、layer5和layer6,差异镜像20相对于关联镜像10的差异数据包括数据块a、数据块b以及差异镜像20的镜像层layer6中的全部数据。将关联镜像10中的每个镜像层与差异镜像20中的对应的镜像层进行合并处理,例如将关联镜像10中的layer1至layer5分别与差异镜像20中的layer1至layer5进行合并处理,得到5个分别为layer1至layer5各自对应的合并数据,以及可以确定差异镜像20的镜像层layer6中的全部数据。获取差异镜像20的元数据,并根据该元数据和差异镜像20中的每个镜像层layer1至layer6各自对应的合并数据,确定应用程序镜像30,其中,应用程序镜像30包括有镜像层layer1至layer6,layer4包括有数据块b,layer5包括有数据块a,应用程序镜像30还包括有差异镜像20的镜像层layer6。
60.其中,按照镜像层的字节流,将差异镜像的每个镜像层与关联镜像中的对应的镜像层进行合并处理;或者,按照镜像层的目录和文件,将差异镜像的每个镜像层与关联镜像中的对应的镜像层进行合并处理。可以理解的是,也可以选择其他的合并还原策略或者算法,以将差异镜像的每个镜像层与基础镜像中的对应的镜像层进行合并处理,本发明对此不做具体限定。需要说明的是,该关联镜像可为基础镜像,按照每个镜像层的字节流进行合并处理,或者按照每个镜像层的目录和文件进行合并处理,都能精准地确定每个镜像层各自对应的合并数据,从而准确地得到还原的完整的应用程序镜像,保证了发布的应用程序镜像功能的完备性。
61.在一实施例中,根据目标镜像,还原应用程序镜像之后,还包括:根据应用程序镜像,启动对应的应用程序。例如,根据学习强国app的应用程序镜像,可以启动学习强国app,实现了应用程序镜像调动对应的应用程序的功能,达到了业务应用程序部署的目的。
62.上述实施例提供的镜像处理方法,通过获取发布的目标镜像,其中,目标镜像为差异镜像或者为包含关联镜像和差异镜像的镜像,该关联镜像与待发布的应用程序镜像相关联,差异镜像是对所述关联镜像和所述应用程序镜像进行差异对比得到的,然后,根据该目标镜像还原应用程序镜像,可以极大地减小待发布的应用程序镜像的整体尺寸,在还原得到完整的应用程序镜像的同时,极大提高了应用程序镜像的发布和部署的效率。
63.请参阅图5,如图5所示,本发明实施例还提出一种镜像处理装置300,该装置300包括存储器301、处理器302、存储在该存储器上并可在该处理器上运行的程序以及用于实现处理器301和存储器302之间的连接通信的数据总线303,该程序被该处理器执行时,以实现以下所示的具体步骤:
64.获取待处理的应用程序镜像,并获取所述应用程序镜像的关联镜像;
65.对所述关联镜像和所述应用程序镜像进行差异对比,得到差异镜像;
66.基于所述差异镜像和关联镜像,确定待发布的目标镜像。
67.在一个实施例中,所述处理器用于实现:所述关联镜像包括所述应用程序镜像的上代版本镜像和基础镜像中的任一项。
68.在一个实施例中,所述处理器用于实现:所述关联镜像包括至少两个所述应用程序镜像共有的至少一个基础镜像。
69.在一个实施例中,所述处理器在实现所述对所述关联镜像和所述应用程序镜像进
行差异对比,得到差异镜像时,用于实现:
70.将所述关联镜像中的每个镜像层与所述应用程序镜像中的对应的镜像层进行差异对比,得到所述应用程序镜像中的每个镜像层各自对应的差异数据;
71.获取所述应用程序镜像的元数据,并根据所述元数据和所述应用程序镜像中的每个镜像层各自对应的差异数据,确定所述差异镜像。
72.在一个实施例中,所述处理器在实现所述将所述关联镜像中的每个镜像层与所述应用程序镜像中的对应的镜像层进行差异对比时,用于实现:
73.按照镜像层的字节流,将所述关联镜像中的每个镜像层与所述应用程序镜像中的对应的镜像层进行差异对比;或者
74.按照镜像层的目录和文件,将所述关联镜像中的每个镜像层与所述应用程序镜像中的对应的镜像层进行差异对比。
75.在一个实施例中,所述处理器还用于实现:所述目标镜像的尺寸小于所述待处理的应用程序镜像的尺寸。
76.在一个实施例中,所述处理器在实现所述基于所述差异镜像和关联镜像,确定待发布的目标镜像时,用于实现:
77.若所述关联镜像为所述应用程序镜像的上代版本镜像,则将所述差异镜像作为待发布的目标镜像;
78.若所述关联镜像为所述应用程序镜像的基础镜像,则将所述差异镜像和所述基础镜像作为待发布的目标镜像。
79.在一实施例中,该程序被该处理器执行时,以实现以下所示的具体步骤:
80.获取发布的目标镜像,其中,所述目标镜像为差异镜像或者为包含关联镜像和差异镜像的镜像,所述关联镜像与待发布的应用程序镜像相关联,所述差异镜像是对所述关联镜像和所述应用程序镜像进行差异对比得到的;
81.根据所述目标镜像,还原所述应用程序镜像。
82.在一个实施例中,所述处理器用于实现:所述关联镜像包括所述应用程序镜像的上代版本镜像和基础镜像中的任一项。
83.在一个实施例中,所述处理器用于实现:所述关联镜像包括至少两个所述应用程序镜像中所共有的至少一个基础镜像。
84.在一个实施例中,所述目标镜像为差异镜像;所述处理器在实现所述根据所述目标镜像,还原所述应用程序镜像时,用于实现:
85.获取所述应用程序镜像的上代版本镜像;
86.将所述差异镜像与所述上代版本镜像进行合并还原,得到所述应用程序镜像。
87.在一个实施例中,所述处理器在实现所述将所述目标镜像与所述上代版本镜像进行合并还原,得到所述应用程序镜像时,用于实现:
88.将所述差异镜像的每个镜像层与所述上代版本镜像中的对应的镜像层进行合并处理,得到所述上代版本镜像中的每个镜像层各自对应的合并数据;
89.获取所述差异镜像的元数据,并根据所述元数据和所述上代版本镜像中的每个镜像层各自对应的合并数据,确定还原的所述应用程序镜像。
90.在一个实施例中,所述目标镜像为包含关联镜像和差异镜像的镜像;所述处理器
在实现所述根据所述目标镜像,还原所述应用程序镜像时,用于实现:
91.将所述差异镜像的每个镜像层与所述关联镜像中的对应的镜像层进行合并处理,得到所述差异镜像中的每个镜像层各自对应的合并数据;
92.获取所述差异镜像的元数据,并根据所述元数据和所述差异镜像中的每个镜像层各自对应的合并数据,确定还原的所述应用程序镜像。
93.在一个实施例中,所述处理器在实现所述将所述差异镜像的每个镜像层与所述基础镜像中的对应的镜像层进行合并处理时,用于实现:
94.按照镜像层的字节流,将所述差异镜像的每个镜像层与所述基础镜像中的对应的镜像层进行合并处理;或者
95.按照镜像层的目录和文件,将所述差异镜像的每个镜像层与所述基础镜像中的对应的镜像层进行合并处理。
96.在一个实施例中,所述处理器在实现所述根据所述目标镜像,还原所述应用程序镜像之后,还用于实现:
97.根据所述应用程序镜像,启动对应的应用程序。
98.本发明实施例还提出一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,该程序被处理器执行时,所实现的方法可参照本发明镜像处理方法的各个实施例。
99.其中,所述计算机可读存储介质可以是前述实施例所述的镜像处理装置的内部存储单元,例如所述镜像处理装置的硬盘或内存。所述计算机可读存储介质也可以是所述镜像处理装置的外部存储设备,例如所述镜像处理装置上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。
100.本发明实施例提出的镜像处理方法、装置和存储介质,其通过获取待处理的应用程序镜像,并获取该应用程序镜像的关联镜像,然后对该关联镜像和应用程序镜像进行差异对比,得到差异镜像,再基于该差异镜像和关联镜像,确定待发布的目标镜像。可见,本技术方案,其可极大地减小待发布的镜像的整体尺寸,达到了使用小尺寸的镜像发布大尺寸的应用程序镜像的目的,进而提高应用程序镜像的发布和部署的效率。
101.或者,通过获取发布的目标镜像,其中,目标镜像为差异镜像或者为包含关联镜像和差异镜像的镜像,该关联镜像与待发布的应用程序镜像相关联,差异镜像是对所述关联镜像和所述应用程序镜像进行差异对比得到的,然后,根据该目标镜像还原应用程序镜像,可以极大地减小待发布的应用程序镜像的整体尺寸,在还原得到完整的应用程序镜像的同时,极大提高了应用程序镜像的发布和部署的效率。
102.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
103.在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
104.如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
105.上述本发明实施例仅仅为了描述,不代表实施例的优劣。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献