CN114936066A - 镜像堆叠方法、装置、设备、介质及程序产品 - Google Patents
镜像堆叠方法、装置、设备、介质及程序产品 Download PDFInfo
- Publication number
- CN114936066A CN114936066A CN202210394838.8A CN202210394838A CN114936066A CN 114936066 A CN114936066 A CN 114936066A CN 202210394838 A CN202210394838 A CN 202210394838A CN 114936066 A CN114936066 A CN 114936066A
- Authority
- CN
- China
- Prior art keywords
- target
- mirror
- image
- images
- mirror image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004590 computer program Methods 0.000 claims description 10
- 238000011161 development Methods 0.000 claims description 8
- 241000109539 Conchita Species 0.000 description 27
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 238000013507 mapping Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008520 organization Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本说明书实施例公开了一种镜像堆叠方法、装置、设备、介质及程序产品。其中,该方法包括:通过服务器或网络等获取N个待叠加镜像,并在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,从而得到一个目标镜像。上述N为大于或等于2的正整数。
Description
技术领域
本说明书涉及计算机技术领域,尤其涉及一种镜像堆叠方法、装置、设备、介质及程序产品。
背景技术
镜像是一个特殊的文件系统,里面包含了容器运行的一切材料,包括可执行文件、依赖库和运行相关的配置等。容器可以将镜像定义的容器内部的执行环境与容器外部完全隔离开。镜像开发者一般通过对每个机构(用户)构建单独的镜像或修改镜像来满足机构(用户)对镜像的特殊要求,例如要求镜像必须基于某个特定的操作系统,或者镜像内部必须嵌入一个指定的可执行文件等以及实现对应用程序(Application,APP)的升级。
发明内容
本说明书实施例提供了一种镜像堆叠方法、装置、设备、介质及程序产品,无需开发者或机构修改原有镜像,既能够方便机构(用户)将多个不同的镜像叠加到一起,放入同一个容器中运行,又简化了软件交付部署过程,提升了用户使用体验。上述技术方案如下:
第一方面,本说明书实施例提供了一种镜像堆叠方法,包括:
获取N个待叠加镜像;上述N为大于或等于2的正整数;
在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
在一种可能的实现方式中,上述获取N个待叠加镜像之后,上述在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加之前,上述方法还包括:
判断上述N个待叠加镜像是否满足预设条件。
在一种可能的实现方式中,上述预设条件为:上述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且上述N个待叠加镜像的第一目标字段相同;上述第一类型的镜像为可独立运行的镜像;上述第二类型的镜像为不可独立运行的镜像;上述第一目标字段用于表征上述待叠加镜像的开发环境。
在一种可能的实现方式中,上述将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像,包括:
将上述N-1个第二类型的镜像叠加到上述一个第一类型的镜像上,得到目标镜像。
在一种可能的实现方式中,上述将上述N-1个第二类型的镜像叠加到上述一个第一类型的镜像上,得到目标镜像,包括:
将上述N-1个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到目标镜像;上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一种可能的实现方式中,上述将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像,包括:
将上述N-1个第二类型的镜像中的第一个第二类型的镜像与上述第一类型的镜像进行叠加,得到第一目标镜像;
将上述N-1个第二类型的镜像中的第二个第二类型的镜像与上述第一目标镜像进行叠加,得到第二目标镜像;
直至将上述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像。
在一种可能的实现方式中,上述将上述N-1个第二类型的镜像中的第一个第二类型的镜像与上述第一类型的镜像进行叠加,得到第一目标镜像,包括:
将上述第N-1个第二类型的镜像中的第一个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到第一目标镜像;
上述将上述N-1个第二类型的镜像中的第二个第二类型的镜像与上述第一目标镜像进行叠加,得到第二目标镜像,包括:
将上述N-1个第二类型的镜像中的第二个第二类型的镜像的上述第二目标字段与上述第一目标镜像的上述第二目标字段进行拼接,得到第二目标镜像;
上述直至将上述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像,包括:
直至将上述N-1个第二类型的镜像中的第N-1个镜像的上述第二目标字段与第N-2目标镜像的上述第二目标字段进行拼接,得到上述目标镜像;
其中,上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一种可能的实现方式中,上述目标镜像中除上述第二目标字段之外的其他字段的值为上述N个待叠加镜像中任意一个上述待叠加镜像的上述其他字段的值。
在一种可能的实现方式中,上述在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像之后,上述方法还包括:
将上述目标镜像输入容器中运行。
在一种可能的实现方式中,上述将上述目标镜像输入容器中运行之后,上述方法还包括:
删除上述目标镜像。
第二方面,本说明书实施例提供了一种镜像堆叠装置,上述装置包括:
获取模块,用于获取N个待叠加镜像;上述N为大于或等于2的正整数;
叠加模块,用于在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
在一种可能的实现方式中,上述装置还包括:
判断模块,用于判断上述N个待叠加镜像是否满足预设条件。
在一种可能的实现方式中,上述预设条件为:上述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且上述N个待叠加镜像的第一目标字段相同;上述第一类型的镜像为可独立运行的镜像;上述第二类型的镜像为不可独立运行的镜像;上述第一目标字段用于表征上述待叠加镜像的开发环境。
在一种可能的实现方式中,上述叠加模块具体用于,将上述N-1个第二类型的镜像叠加到上述一个第一类型的镜像上,得到目标镜像。
在一种可能的实现方式中,上述叠加模块具体用于,将上述N-1个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到目标镜像;上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一种可能的实现方式中,上述叠加模块具体用于,将上述N-1个第二类型的镜像中的第一个第二类型的镜像与上述第一类型的镜像进行叠加,得到第一目标镜像;
将上述N-1个第二类型的镜像中的第二个第二类型的镜像与上述第一目标镜像进行叠加,得到第二目标镜像;
直至将上述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像。
在一种可能的实现方式中,上述叠加模块具体用于:
将上述第N-1个第二类型的镜像中的第一个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到第一目标镜像;
将上述N-1个第二类型的镜像中的第二个第二类型的镜像的上述第二目标字段与上述第一目标镜像的上述第二目标字段进行拼接,得到第二目标镜像;
直至将上述N-1个第二类型的镜像中的第N-1个镜像的上述第二目标字段与第N-2目标镜像的上述第二目标字段进行拼接,得到上述目标镜像;
其中,上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一种可能的实现方式中,上述目标镜像中除上述第二目标字段之外的其他字段的值为上述N个待叠加镜像中任意一个上述待叠加镜像的上述其他字段的值。
在一种可能的实现方式中,上述装置还包括:
输入模块,用于将上述目标镜像输入容器中运行。
在一种可能的实现方式中,上述装置还包括:
删除模块,用于删除上述目标镜像。
第三方面,本说明书实施例提供了一种电子设备,包括:处理器和存储器;
上述处理器与上述存储器相连;
上述存储器,用于存储可执行程序代码;
上述处理器通过读取上述存储器中存储的可执行程序代码来运行与上述可执行程序代码对应的程序,以用于执行本说明书实施例第一方面或第一方面的任意一种可能的实现方式提供的方法。
第四方面,本说明书实施例提供了一种计算机存储介质,上述计算机存储介质存储有多条指令,上述指令适于由处理器加载并执行本说明书实施例第一方面或第一方面的任意一种可能的实现方式提供的方法步骤。
第五方面,本说明书实施例提供了一种包含指令的计算机程序产品,当上述计算机程序产品在计算机或处理器上运行时,使得上述计算机或上述处理器执行本说明书实施例第一方面或第一方面的任意一种可能的实现方式提供的镜像堆叠方法。
在本说明书实施例中,可以从网络或服务器等获取至少两个待叠加镜像,并在上述至少两个待叠加镜像满足预设条件的情况下,将上述至少两个待叠加镜像按照预设规则进行叠加,得到目标镜像,从而开发者无需修改原有镜像,只需要制作一份标准镜像分发给所有用户(机构)即可,若有用户(机构)有特殊需求要调整镜像内容,只需要在运行前叠加相对应的镜像,就能简便地对镜像的内容进行微调,使得镜像的制作和使用更具有灵活性,实现既能够使多个不同的镜像叠加到一起,放入同一个容器中运行,又简化了软件交付部署过程,提升了用户的使用体验。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一示例性实施例提供的一种镜像堆叠系统的架构示意图;
图2为本说明书一示例性实施例提供的一种镜像堆叠方法的流程示意图;
图3A为本说明书一示例性实施例提供的一种第一预设映射表的结构示意图;
图3B为本说明书一示例性实施例提供的一种第二预设映射表的结构示意图;
图4A为本说明书一示例性实施例提供的一种待叠加镜像的示意图;
图4B为本说明书一示例性实施例提供的另一种待叠加镜像的示意图;
图4C为本说明书一示例性实施例提供的另一种待叠加镜像的示意图;
图4D为本说明书一示例性实施例提供的一种目标镜像的示意图;
图5A为本说明书一示例性实施例提供的一种第一目标镜像的示意图;
图5B为本说明书一示例性实施例提供的另一种目标镜像的示意图;
图6为本说明书一示例性实施例提供的另一种镜像堆叠方法的流程示意图;
图7为本说明书一示例性实施例提供的镜像堆叠装置的结构示意图;
图8为本说明书一示例性实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述。
本说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
请参考图1,图1为本说明书一示例性实施例提供的一种镜像堆叠系统的架构示意图。如图1所示,镜像堆叠系统可以包括:终端集群和服务器120。其中:
终端集群可以为用户端,具体包括一个或多个用户端,其中多个用户端可以包括用户端110a、用户端110b、用户端110c…等。在终端集群中可安装用户版的软件,用于实现用户线上输入N个待叠加镜像的名称、将N个待叠加镜像进行叠加等功能。终端集群中任意一个用户端均可以建立与网络之间的数据关系,并通过该网络和服务器120建立数据连接关系,实现通过网络从服务器120中下载N个待叠加镜像等功能。其中,终端集群中任意一个用户端可以但不限于是安装有用户版软件的手机、平板电脑、笔记本电脑等设备。
服务器120可以是能提供多种镜像的服务器,可以给网络或终端集群中的任意一个用户端发送N个待叠加镜像的名称对应的N个镜像等数据。服务器120可以但不限于是硬件服务器、虚拟服务器、云服务器等。
网络可以是在服务器120和终端集群中任意一个用户端之间提供通信链路的介质,也可以是包含网络设备和传输介质的互联网,不限于此。传输介质可以是有线链路(例如但不限于,同轴电缆、光纤和数字用户线路(digital subscriber line,DSL)等)或无线链路(例如但不限于,无线上网(wireless fidelity,WIFI)、蓝牙和移动设备网络等)。
可以理解地,图1所示的镜像堆叠系统中的终端集群和服务器120的数目仅作为示例,在具体实现中,该镜像堆叠系统中可以包含任意数目的用户端、和服务器。本说明书实施例对此不作具体限定。例如但不限于,服务器120可以是多个服务器组成的服务器集群。
由于传统的镜像是不可变的,一但制作完成其内容就无法再改变,缺少灵活性,这时如果想对镜像的内容做一些微调,那就只能重新制作镜像。即当机构(用户)对镜像有特殊要求或APP需要升级时,开发者就需要针对每个机构构建专用的镜像或修改镜像,这个过程不仅复杂,也很容易出错,并且每个机构专用镜像都要推送到服务器的中心镜像仓库存储,这些相似但不完全一样的镜像会浪费大量存储空间。为了解决上述问题,接下来结合图1,介绍本说明书实施例提供一种镜像堆叠方法。具体请参考图2,其为本说明书一示例性实施例提供的一种镜像堆叠方法的流程示意图。如图2所示,该镜像堆叠方法包括以下几个步骤:
步骤202,获取N个待叠加镜像。
具体地,上述待叠加镜像为需要进行叠加的镜像。在同一个容器中可同时运行至少一个上述待叠加镜像。为了实现镜像叠加,区分哪些镜像可以叠加在一起运行,哪些镜像不能叠加在一起运行,开发人员可以将不同的镜像赋予不同的类型,并将不同类型不同功能的镜像对应编译不同的镜像名称,从而得到通过叠加后可以符合大多数用户需求的多个待叠加镜像。开发人员可将上述多个待叠加镜像上传网络或服务器120中,以供机构(用户)根据自己的需要进行待叠加镜像的叠加,从而极大地减少了开发人员的工作量以及简化了软件交付部署过程。同时,当机构(用户)有新的需求时,开发人员只需要根据机构(用户)新的需求制作一个比较精简的待叠加镜像上传网络或服务器120即可,可以避免重复构建镜像。
可选地,当用户想要实现某些特定的功能时,用户可以根据第一预设映射表选择N个与用户需要的镜像功能对应的待叠加镜像,并将上述N个待叠加镜像对应的名称输入终端。上述第一预设映射表包括多个待叠加镜像对应的名称以及与上述多个待叠加镜像一一对应的功能。终端接收到上述N个镜像名称之后,可根据上述N个镜像名称通过网络从服务器120中获取对应的N个待叠加镜像。本说明书中的镜像堆叠系统并不限于图1所示的结构,也可以仅包括终端,即终端接收到上述N个镜像名称之后,也可以根据上述N个镜像名称直接从存储在终端的数据库中获取对应的N个待叠加镜像,本说明书对此不作限定。
示例性地,如图3A所示,其为本说明书一示例性实施例提供的一种第一预设映射表的结构示意图。当用户想要实现功能2和功能3时,可以根据上述第一预设映射表选择分别与功能2和功能3对应的镜像名称(RepoTags)为centos2和centos3的两个待叠加镜像,并将上述两个待叠加镜像的镜像名称输入终端,从而使终端根据接收到的用户输入的两个镜像名称通过网络从服务器120中获取对应的两个待叠加镜像。
可选地,用户可以根据第二预设映射表选择一个与用户需要的镜像功能对应的待叠加镜像组,并将上述待叠加镜像组中的N个镜像名称即所有镜像名称全部输入终端。上述第二预设映射表包括多个待叠加镜像组以及与上述多个待叠加镜像组一一对应的功能。上述每个待叠加镜像组包括至少两个待叠加镜像对应的镜像名称。终端接收到上述N个镜像名称之后,可根据上述N个镜像名称通过网络从服务器120中获取对应的N个待叠加镜像。上述N的值为用户选择的上述待叠加镜像组中对应的待叠加镜像名称的个数。
具体地,上述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且上述N个待叠加镜像的第一目标字段相同。
具体地,上述第一类型的镜像为可独立运行的镜像。本说明书实施例中将第一类型的镜像称为标准(Standard)镜像。第一类型的镜像的层文件中包含了一切执行需要的文件,例如包括可执行文件、执行依赖的库文件、配置文件等。第一类型的镜像包括操作系统文件,供上述可执行文件运行。
具体地,上述第二类型的镜像为不可独立运行的镜像。本说明书实施例中将第二类型的镜像称为精简(Lite)镜像,上述第二类型的镜像不会绑定操作系统,其层文件中只包含运行需要的一部分文件,因此上述第二类型的镜像不能独立运行,必须与其他包含操作系统文件的标准镜像等第一类型的镜像叠加运行。
具体地,上述第一目标字段用于表征上述待叠加镜像的开发环境。上述第一目标字段可以包括处理器架构类型(Architecture字段)和操作系统类型(operating system,OS字段)。上述处理器架构类型可以包括amd64(x86-64)、英特尔32位架构(IntelArchitecture 32-bit,IA-32)等,本说明书实施例对此不作限定。上述amd64属于X86体系结构的64位版本,是一种64位元的电脑处理器架构。上述IA-32属于X86体系结构的32位版本,即具有32位内存地址和32位数据操作数的处理器体系结构。上述操作系统类型可以包括Windows操作系统、linux操作系统等,本说明书实施例对此不作限定。
示例性地,如图3B所示,其为本说明书一示例性实施例提供的一种第二预设映射表的结构示意图。当用户想要实现功能2和功能3时,可以根据上述第二预设映射表选择只与功能2和功能3对应的待叠加镜像组。由图3B可知,功能2和功能3对应的待叠加镜像组包括镜像名称(RepoTags)为centos2和centos3的两个待叠加镜像,且镜像名称为centos2的待叠加镜像为第一类型的镜像,镜像名称为centos3的待叠加镜像为第二类型的镜像。将上述两个待叠加镜像的镜像名称依次输入终端,从而使终端根据接收到的用户输入的两个镜像名称通过网络从服务器120中获取对应的两个待叠加镜像。此时,上述两个待叠加镜像的第一目标字段相同。
步骤204,在N个待叠加镜像满足预设条件的情况下,将N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
可选地,根据第一预设映射表获取到N个待叠加镜像后,需要先判断上述N个待叠加镜像是否满足预设条件,若上述N个待叠加镜像满足预设条件,则将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。上述预设条件为:上述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且上述N个待叠加镜像的第一目标字段相同。
可选地,当获取的N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且上述N个待叠加镜像的第一目标字段相同,例如是根据第二预设映射表获取的N个待叠加镜像时,不需要再进行上述N个待叠加镜像是否满足预设条件,可直接将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
可选地,在N个待叠加镜像满足预设条件的情况下,可将上述N-1个第二类型的镜像叠加到上述一个第一类型的镜像上,得到目标镜像。相当于将上述N-1个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,即将上述N-1个第二类型的镜像的第二目标字段按照预设顺序或随机拼接到上述第一类型的镜像的第二目标字段后面,得到目标镜像。上述目标镜像中除上述第二目标字段、镜像名称字段、镜像大小字段以及镜像类型字段之外的其他字段的值为上述N个待叠加镜像中任意一个待叠加镜像的其他字段的值。上述第二目标字段用于表征待叠加镜像的层文件信息和内部环境信息。上述预设顺序可以是用户输入上述N-1个第二类型的镜像时的顺序,也可以是上述N-1个第二类型的镜像大小的升序或降序等,本说明书对此不作限定。上述目标镜像为第一类型的镜像。上述目标镜像的名称可以随机生成,只要与上述N个待叠加镜像的名称不重复即可。上述目标镜像的大小可为上述N个待叠加镜像的大小之和,本说明书对此不作具体限定。
示例性地,如图4A-图4C所示,其为本说明书一示例性实施例提供的待叠加镜像的结构示意图。当N=3时,如图4A-图4C所示,待叠加镜像centos1为第一类型(Standard)的镜像,待叠加镜像centos2和centos3均为第二类型(Lite)的镜像,且上述待叠加镜像centos1的第一目标字段411(Architecture字段和Os字段)、上述待叠加镜像centos2的第一目标字段421(Architecture字段和Os字段)以及上述待叠加镜像centos3的第一目标字段431(Architecture字段和Os字段)均相同,即上述3个待叠加镜像满足预设条件,若预设顺序为待叠加镜像centos2排在后面,待叠加镜像centos3排在前面,则可将上述待叠加镜像centos2的第二目标字段422(Config.Env字段422a与RootFS.Layers字段422b)和centos3的第二目标字段432(Config.Env字段432a与RootFS.Layers字段432b)按照上述预设顺序对应拼接到上述待叠加镜像centos1的第二目标字段412(Config.Env字段412a与RootFS.Layers字段412b)后面,从而得到如图4D所示的目标镜像。即上述目标镜像的第二目标字段442(Config.Env字段442a与RootFS.Layers字段442b)的内容如图4D所示。上述目标镜像的类型(Type)设置为第一类型(Standard)。上述目标镜像的大小(Size)可以为上述3个待叠加镜像的大小之和。如图4D中RepoTags字段所示,上述目标镜像的名称可由上述3个待叠加镜像的名称进行拼接组成,即为centos1-centos3-centos2,上述目标镜像的名称也可以是由数字、字母、下划线等随机组成的与上述3个待叠加镜像的名称不重复的任意长度的字符串,本说明书对此不作限定。如图4D所示,上述目标镜像除上述第二目标字段、镜像名称字段、镜像大小字段以及镜像类型字段之外的其他字段可以采用上述待叠加镜像centos2的其他字段的值。
可选地,在N个待叠加镜像满足预设条件的情况下,可将上述N-1个第二类型的镜像中的第一个第二类型的镜像与上述第一类型的镜像进行叠加,得到第一目标镜像,然后将上述N-1个第二类型的镜像中的第二个第二类型的镜像与上述第一目标镜像进行叠加,得到第二目标镜像,直至将上述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像。相当于将第N-1个第二类型的镜像中的第一个第二类型的镜像的第二目标字段与一个第一类型的镜像的第二目标字段进行拼接,得到第一目标镜像,然后将上述N-1个第二类型的镜像中的第二个第二类型的镜像的第二目标字段与上述第一目标镜像的第二目标字段进行拼接,得到第二目标镜像,直至将N-1个第二类型的镜像中的第N-1个镜像的第二目标字段与第N-2目标镜像的第二目标字段进行拼接,得到目标镜像,且将上述目标镜像中除上述第二目标字段之外的其他字段的值为上述N个待叠加镜像中任意一个待叠加镜像的其他字段的值。其中,上述第二目标字段用于表征待叠加镜像的层文件信息和内部环境信息。上述第一目标镜像、上述第二目标镜像、上述第N-2目标镜像以及上述目标镜像均为第一类型的镜像。上述目标镜像的名称与可随机生成,只要与上述N个待叠加镜像的名称不重复即可。上述目标镜像的大小可为上述N个待叠加镜像的大小之和,本说明书对此不作具体限定。
示例性地,当N=3时,如图4A-图4C所示,待叠加镜像centos1为第一类型(Standard)的镜像,待叠加镜像centos2和centos3均为第二类型(Lite)的镜像,且上述待叠加镜像centos1的第一目标字段411(Architecture字段和Os字段)、上述待叠加镜像centos2的第一目标字段421(Architecture字段和Os字段)以及上述待叠加镜像centos3的第一目标字段431(Architecture字段和Os字段)均相同,即上述3个待叠加镜像满足预设条件,可先将上述待叠加镜像centos2的第二目标字段422(内部环境信息即Config.Env字段422a与层文件信息即RootFS.Layers字段422b)对应拼接到上述待叠加镜像centos1的第二目标字段412(Config.Env字段412a与RootFS.Layers字段412b)后面,从而得到如图5A所示的第一目标镜像。上述第一目标镜像的类型(Type)设置为第一类型(Standard)。上述第一目标镜像的大小(Size)可以为待叠加镜像centos1与待叠加镜像centos2的大小之和。如图5A中RepoTags字段所示,上述第一目标镜像的名称为dymbjx1。如图5A所示,上述第一目标镜像除上述第二目标字段、镜像名称字段、镜像大小字段以及镜像类型字段之外的其他字段均采用上述待叠加镜像centos2的其他字段的值。得到第一目标镜像后,可在将上述待叠加镜像centos3的第二目标字段432(内部环境信息即Config.Env字段432a与层文件信息即RootFS.Layers字段432b)对应拼接到上述第一目标镜像dymbjx1的第二目标字段510(Config.Env字段510a与RootFS.Layers字段510b)后面,从而得到如图5B所示的目标镜像。即上述目标镜像的第二目标字段520(Config.Env字段520a与RootFS.Layers字段520b)的内容如图5B所示。上述目标镜像的类型(Type)设置为第一类型(Standard)。上述目标镜像的大小(Size)可以为待叠加镜像centos3与第一目标镜像dymbjx1的大小之和。如图5B中RepoTags字段所示,上述目标镜像的名称为dymbjx2。如图5B所示,上述目标镜像除上述第二目标字段、镜像名称字段、镜像大小字段以及镜像类型字段之外的其他字段均采用上述待叠加镜像centos3的其他字段的值。
本说明书实施例通过网络从服务器中获取N个待叠加镜像,并在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像,从而开发者无需修改原有镜像,只需要制作一份标准镜像分发给所有用户(机构)即可,若有用户(机构)有特殊需求要调整镜像内容,只需要在运行前叠加相对应的镜像,就能简便地对镜像的内容进行微调,使得镜像的制作和使用更具有灵活性,实现既能够使多个不同的镜像叠加到一起,放入同一个容器中运行,又简化了软件交付部署过程,提升了用户的使用体验。
接下来介绍本说明书实施例提供的另一种镜像堆叠方法。具体请参考图6,其为本说明书一示例性实施例提供的另一种镜像堆叠方法的流程示意图。如图6所示,该镜像堆叠方法包括以下几个步骤:
步骤602,获取N个待叠加镜像。
具体地,步骤602与步骤202一致,此处不再赘述。
步骤604,在N个待叠加镜像满足预设条件的情况下,将N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
具体地,步骤604与步骤204一致,此处不再赘述。
步骤606,将目标镜像输入容器中运行。
具体地,在得到目标镜像之后,可将上述目标镜像输入容器中,当容器接收到上述目标镜像时,可直接运行上述目标镜像包括的层文件,从而执行上述目标镜像中指定的指令,实现上述目标镜像的功能,相当于实现在一个容器中同时运行N个待叠加镜像。上述容器包括应用容器引擎(docker)、coreos等,本说明书对此不作限定。
示例性地,若N=2,上述目标镜像是由2个待叠加镜像进行叠加得到,其中第一个待叠加镜像为标准镜像,能够实现基础的查阅信息的功能,第二个待叠加镜像为精简镜像,其对应删除信息的功能,则将上述目标输入容器中运行后,可实现查阅信息和删除信息两种功能。
步骤608,删除目标镜像。
具体地,目标镜像可以为虚拟的镜像,即可以不进行存储。相当于在容器中运行之后,将会自动删除上述目标镜像,从而避免存储一些相似但又不完全一样的镜像,节省大量的存储空间。
可选地,将目标镜像输入容器中运行后,也可以直接将上述目标镜像进行存储,以便下一次运行,本说明书对此不作限定。
本说明书实施例通过将N个待叠加镜像进行叠加得到目标镜像,并将上述目标镜像输入容器中运行,不需要改造升级原有的容器,就能实现在一个容器中同时运行1个或多个镜像,从而简化了开发上线流程,提升了用户的使用体验。在容器中运行完目标镜像之后,将会自动删除上述目标镜像,从而不会存储一些相似但又不完全一样的镜像,避免浪费大量的存储空间。
请参考图7,其为本说明书实施例提供的一种镜像堆叠装置的结构示意图。该镜像堆叠装置700包括:
获取模块710,用于获取N个待叠加镜像;上述N为大于或等于2的正整数;
叠加模块720,用于在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
在一种可能的实现方式中,上述装置700还包括:
判断模块,用于判断上述N个待叠加镜像是否满足预设条件。
在一种可能的实现方式中,上述预设条件为:上述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且上述N个待叠加镜像的第一目标字段相同;上述第一类型的镜像为可独立运行的镜像;上述第二类型的镜像为不可独立运行的镜像;上述第一目标字段用于表征上述待叠加镜像的开发环境。
在一种可能的实现方式中,上述叠加模块720具体用于,将上述N-1个第二类型的镜像叠加到上述一个第一类型的镜像上,得到目标镜像。
在一种可能的实现方式中,上述叠加模块720具体用于,将上述N-1个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到目标镜像;上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一种可能的实现方式中,上述叠加模块720具体用于,将上述N-1个第二类型的镜像中的第一个第二类型的镜像与上述第一类型的镜像进行叠加,得到第一目标镜像;
将上述N-1个第二类型的镜像中的第二个第二类型的镜像与上述第一目标镜像进行叠加,得到第二目标镜像;
直至将上述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像。
在一种可能的实现方式中,上述叠加模块720具体用于:
将上述第N-1个第二类型的镜像中的第一个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到第一目标镜像;
将上述N-1个第二类型的镜像中的第二个第二类型的镜像的上述第二目标字段与上述第一目标镜像的上述第二目标字段进行拼接,得到第二目标镜像;
直至将上述N-1个第二类型的镜像中的第N-1个镜像的上述第二目标字段与第N-2目标镜像的上述第二目标字段进行拼接,得到上述目标镜像;
其中,上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一种可能的实现方式中,上述目标镜像中除上述第二目标字段之外的其他字段的值为上述N个待叠加镜像中任意一个上述待叠加镜像的上述其他字段的值。
在一种可能的实现方式中,上述装置700还包括:
输入模块,用于将上述目标镜像输入容器中运行。
在一种可能的实现方式中,上述装置700还包括:
删除模块,用于删除上述目标镜像。
上述镜像堆叠装置中各模块的划分仅用于举例说明,在其他实施例中,可将镜像堆叠装置按照需要划分为不同的模块,以完成上述镜像堆叠装置的全部或部分功能。本说明书实施例中提供的镜像堆叠装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本说明书实施例中所描述的镜像堆叠方法的全部或部分步骤。
请参阅图8,图8为本说明书一示例性实施例提供的一种电子设备的结构示意图。如图8所示,该电子设备800可以包括:至少一个处理器810、至少一个网络接口820、用户接口830、存储器840、至少一个通信总线850。
其中,通信总线850可用于实现上述各个组件的连接通信。
其中,用户接口830可以包括显示屏(Display)和摄像头(Camera),可选用户接口还可以包括标准的有线接口、无线接口。
其中,网络接口820可选的可以包括蓝牙模块、近场通信(Near FieldCommunication,NFC)模块、无线保真(Wireless Fidelity,Wi-Fi)模块等。
其中,处理器810可以包括一个或者多个处理核心。处理器810利用各种接口和线路连接整个电子设备800内的各个部分,通过运行或执行存储在存储器840内的指令、程序、代码集或指令集,以及调用存储在存储器840内的数据,执行路由电子设备800的各种功能和处理数据。可选的,处理器810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器810可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块芯片进行实现。
其中,存储器840可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选的,该存储器840包括非瞬时性计算机可读介质。存储器840可用于存储指令、程序、代码、代码集或指令集。存储器840可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如获取待叠加镜像、叠加多个待叠加镜像等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器840可选的还可以是至少一个位于远离前述处理器810的存储装置。如图8所示,作为一种计算机存储介质的存储器840中可以包括操作系统、网络通信模块、用户接口模块以及应用程序。
在一些可能的实施例中,电子设备800可以是前述镜像堆叠装置,在图8所示的电子设备800中,用户接口830主要用于为用户提供输入的接口例如镜像堆叠装置上的按键等,获取用户触发的指令;而处理器810可以用于调用存储器840中存储的应用程序,并具体执行以下操作:
获取N个待叠加镜像;上述N为大于或等于2的正整数。
在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
在一些可能的实施例中,上述处理器810执行获取N个待叠加镜像之后,上述在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加之前,还用于执行:
判断上述N个待叠加镜像是否满足预设条件。
在一些可能的实施例中,上述预设条件为:上述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且上述N个待叠加镜像的第一目标字段相同;上述第一类型的镜像为可独立运行的镜像;上述第二类型的镜像为不可独立运行的镜像;上述第一目标字段用于表征上述待叠加镜像的开发环境。
在一些可能的实施例中,上述处理器810执行将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像时,具体用于执行:
将上述N-1个第二类型的镜像叠加到上述一个第一类型的镜像上,得到目标镜像。
在一些可能的实施例中,上述处理器810执行将上述N-1个第二类型的镜像依次叠加到上述一个第一类型的镜像上,得到目标镜像时,具体用于执行:
将上述N-1个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到目标镜像;上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一些可能的实施例中,上述处理器810执行将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像时,具体用于执行:
将上述N-1个第二类型的镜像中的第一个第二类型的镜像与上述第一类型的镜像进行叠加,得到第一目标镜像。
将上述N-1个第二类型的镜像中的第二个第二类型的镜像与上述第一目标镜像进行叠加,得到第二目标镜像。
直至将上述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像。
在一些可能的实施例中,上述处理器810执行将上述N-1个第二类型的镜像中的第一个第二类型的镜像与上述第一类型的镜像进行叠加,得到第一目标镜像时,具体用于执行:
将上述第N-1个第二类型的镜像中的第一个第二类型的镜像的第二目标字段与上述第一类型的镜像的第二目标字段进行拼接,得到第一目标镜像。
上述处理器810执行将上述N-1个第二类型的镜像中的第二个第二类型的镜像与上述第一目标镜像进行叠加,得到第二目标镜像时,具体用于执行:
将上述N-1个第二类型的镜像中的第二个第二类型的镜像的上述第二目标字段与上述第一目标镜像的上述第二目标字段进行拼接,得到第二目标镜像。
上述处理器810执行直至将上述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像时,具体用于执行:
直至将上述N-1个第二类型的镜像中的第N-1个镜像的上述第二目标字段与第N-2目标镜像的上述第二目标字段进行拼接,得到上述目标镜像。
其中,上述第二目标字段用于表征上述待叠加镜像的层文件信息和内部环境信息。
在一些可能的实施例中,上述目标镜像中除上述第二目标字段之外的其他字段的值为上述N个待叠加镜像中任意一个上述待叠加镜像的上述其他字段的值。
在一些可能的实施例中,上述处理器810执行在上述N个待叠加镜像满足预设条件的情况下,将上述N个待叠加镜像按照预设规则进行叠加,得到目标镜像之后,还用于执行:
将上述目标镜像输入容器中运行。
在一些可能的实施例中,上述处理器810执行将上述目标镜像输入容器中运行之后,还用于执行:
删除上述目标镜像。
本说明书实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述实施例中的一个或多个步骤。上述镜像堆叠装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本说明书实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(DigitalVersatile Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可存储程序代码的介质。在不冲突的情况下,本实施例和实施方案中的技术特征可以任意组合。
以上所述的实施例仅仅是本说明书的优选实施例方式进行描述,并非对本说明书的范围进行限定,在不脱离本说明书的设计精神的前提下,本领域普通技术人员对本说明书的技术方案作出的各种变形及改进,均应落入权利要求书确定的保护范围内。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (23)
1.一种镜像堆叠方法,所述方法包括:
获取N个待叠加镜像;所述N为大于或等于2的正整数;
在所述N个待叠加镜像满足预设条件的情况下,将所述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
2.如权利要求1所述的方法,所述获取N个待叠加镜像之后,所述在所述N个待叠加镜像满足预设条件的情况下,将所述N个待叠加镜像按照预设规则进行叠加之前,所述方法还包括:
判断所述N个待叠加镜像是否满足预设条件。
3.如权利要求1或2所述的方法,所述预设条件为:所述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且所述N个待叠加镜像的第一目标字段相同;所述第一类型的镜像为可独立运行的镜像;所述第二类型的镜像为不可独立运行的镜像;所述第一目标字段用于表征所述待叠加镜像的开发环境。
4.如权利要求3所述的方法,所述将所述N个待叠加镜像按照预设规则进行叠加,得到目标镜像,包括:
将所述N-1个第二类型的镜像叠加到所述一个第一类型的镜像上,得到目标镜像。
5.如权利要求4所述的方法,所述将所述N-1个第二类型的镜像叠加到所述一个第一类型的镜像上,得到目标镜像,包括:
将所述N-1个第二类型的镜像的第二目标字段与所述第一类型的镜像的第二目标字段进行拼接,得到目标镜像;所述第二目标字段用于表征所述待叠加镜像的层文件信息和内部环境信息。
6.如权利要求3所述的方法,所述将所述N个待叠加镜像按照预设规则进行叠加,得到目标镜像,包括:
将所述N-1个第二类型的镜像中的第一个第二类型的镜像与所述第一类型的镜像进行叠加,得到第一目标镜像;
将所述N-1个第二类型的镜像中的第二个第二类型的镜像与所述第一目标镜像进行叠加,得到第二目标镜像;
直至将所述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像。
7.如权利要求6所述的方法,所述将所述N-1个第二类型的镜像中的第一个第二类型的镜像与所述第一类型的镜像进行叠加,得到第一目标镜像,包括:
将所述第N-1个第二类型的镜像中的第一个第二类型的镜像的第二目标字段与所述第一类型的镜像的第二目标字段进行拼接,得到第一目标镜像;
所述将所述N-1个第二类型的镜像中的第二个第二类型的镜像与所述第一目标镜像进行叠加,得到第二目标镜像,包括:
将所述N-1个第二类型的镜像中的第二个第二类型的镜像的所述第二目标字段与所述第一目标镜像的所述第二目标字段进行拼接,得到第二目标镜像;
所述直至将所述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像,包括:
直至将所述N-1个第二类型的镜像中的第N-1个镜像的所述第二目标字段与第N-2目标镜像的所述第二目标字段进行拼接,得到所述目标镜像;
其中,所述第二目标字段用于表征所述待叠加镜像的层文件信息和内部环境信息。
8.如权利要求5或7所述的方法,所述目标镜像中除所述第二目标字段之外的其他字段的值为所述N个待叠加镜像中任意一个所述待叠加镜像的所述其他字段的值。
9.如权利要求1所述的方法,所述在所述N个待叠加镜像满足预设条件的情况下,将所述N个待叠加镜像按照预设规则进行叠加,得到目标镜像之后,所述方法还包括:
将所述目标镜像输入容器中运行。
10.如权利要求9所述的方法,所述将所述目标镜像输入容器中运行之后,所述方法还包括:
删除所述目标镜像。
11.一种镜像堆叠装置,所述装置包括:
获取模块,用于获取N个待叠加镜像;所述N为大于或等于2的正整数;
叠加模块,用于在所述N个待叠加镜像满足预设条件的情况下,将所述N个待叠加镜像按照预设规则进行叠加,得到目标镜像。
12.如权利要求11所述的装置,所述装置还包括:
判断模块,用于判断所述N个待叠加镜像是否满足预设条件。
13.如权利要求11或12所述的装置,所述预设条件为:所述N个待叠加镜像包括一个第一类型的镜像,以及N-1个第二类型的镜像,且所述N个待叠加镜像的第一目标字段相同;所述第一类型的镜像为可独立运行的镜像;所述第二类型的镜像为不可独立运行的镜像;所述第一目标字段用于表征所述待叠加镜像的开发环境。
14.如权利要求13所述的装置,所述叠加模块具体用于,将所述N-1个第二类型的镜像叠加到所述一个第一类型的镜像上,得到目标镜像。
15.如权利要求14所述的装置,所述叠加模块具体用于,将所述N-1个第二类型的镜像的第二目标字段与所述第一类型的镜像的第二目标字段进行拼接,得到目标镜像;所述第二目标字段用于表征所述待叠加镜像的层文件信息和内部环境信息。
16.如权利要求13所述的装置,所述叠加模块具体用于,将所述N-1个第二类型的镜像中的第一个第二类型的镜像与所述第一类型的镜像进行叠加,得到第一目标镜像;
将所述N-1个第二类型的镜像中的第二个第二类型的镜像与所述第一目标镜像进行叠加,得到第二目标镜像;
直至将所述N-1个第二类型的镜像中的第N-1个镜像与第N-2目标镜像进行叠加,得到目标镜像。
17.如权利要求16所述的装置,所述叠加模块具体用于:
将所述第N-1个第二类型的镜像中的第一个第二类型的镜像的第二目标字段与所述第一类型的镜像的第二目标字段进行拼接,得到第一目标镜像;
将所述N-1个第二类型的镜像中的第二个第二类型的镜像的所述第二目标字段与所述第一目标镜像的所述第二目标字段进行拼接,得到第二目标镜像;
直至将所述N-1个第二类型的镜像中的第N-1个镜像的所述第二目标字段与第N-2目标镜像的所述第二目标字段进行拼接,得到所述目标镜像;
其中,所述第二目标字段用于表征所述待叠加镜像的层文件信息和内部环境信息。
18.如权利要求15或17所述的装置,所述目标镜像中除所述第二目标字段之外的其他字段的值为所述N个待叠加镜像中任意一个所述待叠加镜像的所述其他字段的值。
19.如权利要求11所述的装置,所述装置还包括:输入模块,用于将所述目标镜像输入容器中运行。
20.如权利要求19所述的装置,所述装置还包括:删除模块,用于删除所述目标镜像。
21.一种电子设备,包括:处理器和存储器;
所述处理器与所述存储器相连;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-10任一项所述的方法。
22.一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1-10任一项的方法步骤。
23.一种包含指令的计算机程序产品,当所述计算机程序产品在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210394838.8A CN114936066A (zh) | 2022-04-15 | 2022-04-15 | 镜像堆叠方法、装置、设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210394838.8A CN114936066A (zh) | 2022-04-15 | 2022-04-15 | 镜像堆叠方法、装置、设备、介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114936066A true CN114936066A (zh) | 2022-08-23 |
Family
ID=82861555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210394838.8A Pending CN114936066A (zh) | 2022-04-15 | 2022-04-15 | 镜像堆叠方法、装置、设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114936066A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140325043A1 (en) * | 2013-04-28 | 2014-10-30 | Huawei Technologies Co., Ltd. | Network Switching Method, Version Upgrade Method, and Terminal Device |
WO2017129106A1 (zh) * | 2016-01-29 | 2017-08-03 | 腾讯科技(深圳)有限公司 | 数据请求处理的方法、服务器及系统 |
CN107885748A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 虚拟化实例的文件分层访问方法和装置 |
CN108604231A (zh) * | 2016-12-13 | 2018-09-28 | 华为技术有限公司 | 镜像处理方法以及计算设备 |
CN109783191A (zh) * | 2018-12-18 | 2019-05-21 | 全球能源互联网研究院有限公司 | 容器镜像的管理、使用及构建方法、装置 |
JP2019186788A (ja) * | 2018-04-12 | 2019-10-24 | 学校法人金沢工業大学 | アンテナ及び通信装置 |
CN113209633A (zh) * | 2021-06-09 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 镜像的处理方法、装置、电子设备及可读存储介质 |
WO2021208844A1 (zh) * | 2020-04-15 | 2021-10-21 | 中兴通讯股份有限公司 | 虚拟化容器管理方法、系统和存储介质 |
CN114138403A (zh) * | 2021-10-26 | 2022-03-04 | 北京银盾泰安网络科技有限公司 | 一种镜像存储分发平台 |
-
2022
- 2022-04-15 CN CN202210394838.8A patent/CN114936066A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140325043A1 (en) * | 2013-04-28 | 2014-10-30 | Huawei Technologies Co., Ltd. | Network Switching Method, Version Upgrade Method, and Terminal Device |
WO2017129106A1 (zh) * | 2016-01-29 | 2017-08-03 | 腾讯科技(深圳)有限公司 | 数据请求处理的方法、服务器及系统 |
CN107885748A (zh) * | 2016-09-30 | 2018-04-06 | 华为技术有限公司 | 虚拟化实例的文件分层访问方法和装置 |
CN108604231A (zh) * | 2016-12-13 | 2018-09-28 | 华为技术有限公司 | 镜像处理方法以及计算设备 |
JP2019186788A (ja) * | 2018-04-12 | 2019-10-24 | 学校法人金沢工業大学 | アンテナ及び通信装置 |
CN109783191A (zh) * | 2018-12-18 | 2019-05-21 | 全球能源互联网研究院有限公司 | 容器镜像的管理、使用及构建方法、装置 |
WO2021208844A1 (zh) * | 2020-04-15 | 2021-10-21 | 中兴通讯股份有限公司 | 虚拟化容器管理方法、系统和存储介质 |
CN113209633A (zh) * | 2021-06-09 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 镜像的处理方法、装置、电子设备及可读存储介质 |
CN114138403A (zh) * | 2021-10-26 | 2022-03-04 | 北京银盾泰安网络科技有限公司 | 一种镜像存储分发平台 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101442360B1 (ko) | 플랫폼들 간 가상 머신 이미지 포팅 | |
US8555280B2 (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
US9110756B1 (en) | Tag-based deployment to overlapping host sets | |
CN111527474B (zh) | 软件功能的动态交付 | |
WO2015097583A1 (en) | Configuration updates across peer storage systems | |
US9590859B2 (en) | Discovering resources of a distributed computing environment | |
US10810220B2 (en) | Platform and software framework for data intensive applications in the cloud | |
US10055393B2 (en) | Distributed version control of orchestration templates | |
US8938712B2 (en) | Cross-platform virtual machine and method | |
JP7486575B2 (ja) | コンテナに対する外部操作とミューテーション・イベントとの対応関係 | |
US11288170B1 (en) | Log analysis debugging without running on real production environment | |
JP2024519310A (ja) | デプロイメント構築のためのエージェントレスインストール | |
US10606480B2 (en) | Scale-out container volume service for multiple frameworks | |
CN110489158B (zh) | 对代码托管平台进行优化的方法、装置、介质和电子设备 | |
US20190012326A1 (en) | Analyzing and correcting corruption which caused filesystem checker failure so that the filesystem checker will run without error | |
CN114936066A (zh) | 镜像堆叠方法、装置、设备、介质及程序产品 | |
US9298487B2 (en) | Managing virtual machine images in a distributed computing environment | |
US11556499B2 (en) | Container image migration service | |
CN113704120A (zh) | 数据传输方法、装置、设备及存储介质 | |
CN115016862A (zh) | 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质 | |
US20050132331A1 (en) | Assisting in configuring network devices | |
CN113296878A (zh) | 一种容器处理方法、装置、电子设备及系统 | |
CN113765983A (zh) | 一种站点服务的部署方法和装置 | |
CN115277408B (zh) | 代理配置信息的更新方法、装置、设备及存储介质 | |
US20180018168A1 (en) | Log-based software porting |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |