掌桥专利:专业的专利平台
掌桥专利
首页

容器镜像迁移压缩方法、装置、设备及介质

文献发布时间:2023-06-19 13:46:35


容器镜像迁移压缩方法、装置、设备及介质

技术领域

本申请涉及容器技术领域,特别是涉及一种容器镜像迁移压缩方法、装置、设备及介质。

背景技术

在实际项目部署过程中,容器技术(Docker、Container)由于其轻量级、高性能、快速启动和停止等优势,极大的减少了部署难度,尤其解决了环境构建的问题,但对于部署一个系统来说,通常都会有多个镜像、容器构成。

然而,如果需要将服务系统迁移到另外一个环境中,通常需要将各个微服务对应的镜像导出,利用压缩工具对所有镜像文件进行压缩,然后,再将压缩文件通过中间存储介质或者网络传输另一个环境中,无论是单独先压缩每个镜像文件,还是将所有镜像文件进行整体压缩,得到的压缩包数据量大,极大的增加了存储成本和服务部署、迁移耗时。

发明内容

鉴于以上所述现有技术的缺点,本申请的目的在于提供一种容器镜像迁移压缩方法、装置、设备及介质,用于解决现有技术在容器镜像迁移压缩时,压缩包数据量较大的问题。

为实现上述目的及其他相关目的,本申请提供一种容器镜像迁移压缩方法,包括:

获取各个微服务所对应的多个容器镜像,每个所述容器镜像具有唯一的第一标识符,所述容器镜像内每一个镜像层设置有唯一第二标识符,采用所述第二标识符表示所述容器镜像内各个镜像层,每个所述容器镜像用一个数组表示,该数组由第一标识符与第二标识符构成;

筛选多个所述容器镜像内具有相同第二标识符的镜像层作为共享层,基于所述共享层构建关于多个所述容器镜像的有向图;

采用容器的应用接口抽取所述有向图各个节点各自对应的层数据,将相同镜像层的层数据进行合并,并统一存储各个所述层数据;

按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,得到待迁移的压缩文件。

在某些实施方式中,还包括:基于容器技术实现各个微服务,每个微服务对应的容器导出一个容器镜像;每个所述容器镜像采用一个数组进行表示。

在某些实施方式中,还包括:根据所述容器镜像的数量以及镜像层的层数确定有向图的节点与方向,其中,具有相同第二标识符的镜像层作为共享层的相同节点;在所述相同节点的基础上构建多个所述容器镜像的有向图。

在某些实施方式中,还包括:利用深度优先算法或广度优先算法遍历每个有向图,根据所述有向图的节点对应的第二标识符使用docker容器的应用接口读取各个节点对应的层数据,将各个节点中相同镜像层的层数据进行合并去掉相同的冗余层,统一存储于预设存储目录。

在某些实施方式中,还包括:

获取压缩指令;

根据所述压缩指令的类型匹配相应的压缩方式;

将多个所述容器镜像按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,得到待迁移的压缩文件。

在某些实施方式中,还包括:将所述压缩文件迁移到目标环境,并对所述压缩文件进行解压,依次遍历各个数组的层数据、有向图以及镜像描述文件,进而恢复所述容器镜像的层结构;

将解压后的容器镜像导入基于docker镜像管理平台;运行所述容器镜像,以形成相应的容器镜像文件。

在某些实施方式中,还包括:

采用与预设公钥对应的私钥对所述压缩文件进行解密得到非加密的压缩文件;

对所述解密的压缩文件进行解压缩处理,得到各微服务对应的多个容器镜像;

验证各个所述容器镜像的hash签名;

在所有容器镜像通过hash签名验证的情况下,导入基于docker镜像管理平台根据各所述容器镜像的功能和类型还原对应的微服务应用。

在本申请的另一目的在于提供一种容器镜像迁移压缩装置,包括:

获取模块,用于获取各个微服务所对应的多个容器镜像,每个所述容器镜像具有唯一的第一标识符,所述容器镜像内每一个镜像层设置有唯一第二标识符,采用所述第二标识符表示所述容器镜像内各个镜像层,每个所述容器镜像用一个数组表示,该数组由第一标识符与第二标识符构成;

有向图构建模块,用于筛选多个所述容器镜像内具有相同第二标识符的镜像层作为共享层,基于所述共享层构建关于多个所述容器镜像的有向图;

数据合并模块,采用容器的应用接口抽取所述有向图各个节点各自对应的层数据,将相同镜像层的层数据进行合并,并统一存储各个所述层数据;

压缩文件生成模块,用于按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,得到待迁移的压缩文件。

在某些实施方式中,还包括:。

在本申请的另一目的在于提供一种电子设备,包括:

一个或多个处理装置;

存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置执行所述容器镜像迁移压缩方法。

在本申请的还一目的在于提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于使所述计算机执行所述容器镜像迁移压缩方法。

如上所述,本申请的容器镜像迁移压缩方法、装置、设备及介质,具有以下有益效果:

本申请通过筛选多个所述容器镜像内具有相同第二标识符的镜像层作为共享层,基于所述共享层构建关于多个所述容器镜像的有向图,结合有向图与共享层删除相同的冗余层,对层数据进行合并存储,按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,生成待迁移的压缩文件;从而有效减少了压缩数据的尺寸,也减少系统在部署、扩容、迁移过程中存储开销和时间开销,提高了压缩效率。

附图说明

图1显示为本申请提供的一种容器镜像迁移压缩方法流程图;

图2显示为本申请提供的一种容器镜像迁移压缩方法完整流程图;

图3显示为本申请提供的一种容器镜像迁移压缩方法中解压恢复流程图;

图4显示为本申请提供的一种容器镜像迁移压缩装置结构框图;

图5显示为本申请提供的一种电子设备结构示意图;

图6显示为本申请提供的一种现有的镜像迁移压缩示例图;

图7显示为本申请提供的一种容器镜像迁移压缩示例图。

具体实施方式

以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

请参阅图1,为本申请提供的一种容器镜像迁移压缩方法流程图,包括:

步骤S101,获取各个微服务所对应的多个容器镜像,每个所述容器镜像具有唯一的第一标识符,所述容器镜像内每一个镜像层设置有唯一第二标识符,采用所述第二标识符表示所述容器镜像内各个镜像层,每个所述容器镜像用一个数组表示,该数组由第一标识符与第二标识符构成;

具体地,基于容器技术实现各个微服务,每个微服务对应的容器导出一个容器镜像;每个所述容器镜像采用一个数组进行表示,该数组由第一标识符与第二标识符构成。

需要说明的是,第一标识符包含镜像名称与镜像标签,例如,镜像名称(hash256)与镜像标签(tag),进而区分各个微服务所对应的容器镜像;第一标识符与第二标识符数据结构不同,例如,采用数组来表示镜像唯一的第一标识符,用N个数组来表示N个微服务所对应的镜像。

例如,微服务是一种云原生架构,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。又例如,容器是一种沙盒技术,主要目的是为了将应用运行在其中,与外界隔离;及便这个沙盒可以被转移到其它宿主机器;本质上,它是一个特殊的进程。通过名称空间、控制组、切根技术把资源、文件、设备、状态和配置划分到一个独立的空间。通俗点来说,就是一个装应用软件的箱子,箱子里面有软件运行所需的依赖库和配置。

还需要说明的是,例如,容器镜像A内每个镜像层(镜像分层)对应一个第二标识符,第二标识符用A1至AN表示,N为大于1的自然数;同理,容器镜像B内每个镜像层对应一个第二标识符,该第二标识符也用A1至AN表示;即,不同容器镜像所对应的某些镜像层可以有相同的第二标识符,则,多个不同容器镜像之间可以存在一个或多个的相同第二标识符的镜像层。

步骤S102,筛选多个所述容器镜像内具有相同第二标识符的镜像层作为共享层,基于所述共享层构建关于多个所述容器镜像的有向图;

具体地,根据所述容器镜像的数量以及镜像层的层数确定有向图的节点与方向,其中,具有相同第二标识符的镜像层作为共享层的相同节点;在所述相同节点的基础上构建多个所述容器镜像的有向图。

需要说明的是,各个容器镜像内每一层具有唯一第二标识符,在有向图中,不同的容器镜像含有相同第二标识符的节点为相同节点(共享层),在有向图中,边表示依赖关系,方向为由上一层指向下一层或者由下一层指向上一层,采用N个数组构建有向图G,当然,也可能构建多个有向图,镜像层的层数确定有向图的数量。

例如,容器镜像A、容器镜像B、容器镜像C,通过不同容器镜像的第二标识符进行表示各个节点,即,有向图能够反映各个节点的第二标识符,即,反映数据结构。

步骤S103,采用容器的应用接口抽取所述有向图各个节点各自对应的层数据,将相同镜像层的层数据进行合并,并统一存储各个所述层数据;

具体地,利用深度优先算法或广度优先算法遍历每个有向图,根据所述有向图的节点对应的第二标识符使用docker容器的应用接口读取各个节点对应的层数据,将各个节点中相同镜像层的层数据进行合并去掉相同的冗余层,统一存储于预设存储目录。

需要说明的是,利用深度优先算法可以产生目标图的相应拓扑排序表,利用拓扑排序表依次搜索有向图的节点位置。广度优先算法是系统地展开并检查图中的所有节点,以找寻结果;换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。

还需要说明的是,通过上述算依次查找各个有向图中的各个节点,不会遗漏节点;利用各个节点所对应的第二标识符表示该节点,通过对比各个容器镜像中是否有相同第二标识符的镜像层,即,相同的节点;将相同镜像层的层数据进行合并,从而删除相同的冗余(镜像)层,进而删除冗余的层数据,并将合并后的层数据进行统一存储,例如,将合并的层数据存储至统一的目录,确保了存储的层数据没有冗余层。

步骤S104,按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,得到待迁移的压缩文件。

其中,每个容器镜像内所有镜像分层的层数据(层文件)、每个容器镜像内所有镜像分层对应的数据结构(通过有向图的节点可表示)、镜像描述文件(原始构造镜像描述文件)与数组,多个数组不仅能反映存在哪些容器镜像、各个容器镜像的第一标识符以及各个容器镜像所对应的hash(哈希);同时,还能反映各个容器镜像内有哪些镜像层数、各个镜像层数的第二标识符以及各个镜像层数所对应的hash。

具体地,步骤S104的详细步骤包括:

获取压缩指令;

根据所述压缩指令的类型匹配相应的压缩方式;

将多个所述容器镜像按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,得到待迁移的压缩文件。

例如,该压缩指令为用户通过客户端发送,通过获取压缩指令,得到压缩指令类型中匹配的压缩方式,如:ZIP、7ZIP、RAR与GZIP等压缩方式;将所有不同的层数据、有向图、描述镜像文件以及N个数组,按照预设的组织结构进行打包压缩,得到压缩文件。

通过上述方式,使用相同镜像层(镜像分层)的共享层时,去掉了冗余层,大大减少了压缩了容器镜像的数据量;同时,利用Docker镜像分层的功能可以帮助使用到已有的镜像层,拉取没有的镜像层,达到镜像的资源共享,减少重复镜像层拉取,达到资源使用最大化。

在某些实施方式中,请参阅图2,本申请提供的一种容器镜像迁移压缩方法完整流程图,还包括:

步骤S105,将所述压缩文件迁移到目标环境,并对所述压缩文件进行解压,依次遍历各个数组的层数据、有向图以及镜像描述文件,进而恢复所述容器镜像的层结构;

例如,依次遍历这N个描述镜像构成数组,恢复微服务镜像镜像的层结构。优选的,可以恢复至原始微服务镜像的tar(压缩格式之一)文件形式。

步骤S106,将解压后的容器镜像导入基于docker镜像管理平台;运行所述容器镜像,以形成相应的容器镜像文件。

需要说明的是,Docker作为容器化软件的一种,在此包括但不限于CloudFoundry、OpenShift等。其中,Docker的镜像分层基于联合文件系统UnionFS(Union FileSystem)的技术实现的,它可以将不同的目录全部挂载在同一个目录下。举个例子,假如有文件夹test1和test2,这两个文件夹里面的文件有相同的,也有不同的。然后,采用联合挂载的方式,将这两个文件夹挂载到test3上,那么test3目录里就有了test1和test2的所有文件,即,相同的文件有去重,不同的文件都保留。

再比如,比如有两个同学(同学A与同学S),同学A做好一个基于Linux的Java环境的镜像,同学S想搭建一个Java Web环境,那么他不必重新做Java环境镜像,可以直接基于同学A的镜像上面,增加Tomcat后生成新镜像即可。

在某些实施方式中,请参阅图3,为本申请提供的一种容器镜像迁移压缩方法中解压恢复流程图,还包括:

步骤S301,采用与预设公钥对应的私钥对所述压缩文件进行解密得到非加密的压缩文件;

步骤S302,对所述解密的压缩文件进行解压缩处理,得到各微服务对应的多个容器镜像;

步骤S303,验证各个所述容器镜像的hash签名;

步骤S304,在所有容器镜像通过hash签名验证的情况下,导入基于docker镜像管理平台根据各所述容器镜像的功能和类型还原对应的微服务应用。

例如,导入zip资源包(压缩文件),解压资源包并验证其完整性和正确性。当验证通过时,逐一解析资源包所包含的应用信息,如核心程序的Docker镜像、版本、环境变量、系统资源、存储信息、配置信息等资源,对于每种资源,根据不同功能和类型进行还原。在待导入的压缩文件有多个时,逐个在导入环境中部署(安装或更新)还原后的微服务应用,采用应用探针检测当前部署的应用是否正常启动,若是,则继续部署下一个待导入的压缩文件。

可选的,如果当前部署的压缩文件部署失败或启动失败,则回滚到当前部署的应用的部署前的版本。例如,在导入还原前,还生成一个回滚的信息。一般来说,程序的回滚通过Kubernetes自带副本机制滚动发布。数据的回滚则是通过提前备份,通过SQL语句生成反向还原语句。当出现导入异常,或者导入成功后业务运行异常时,可以回滚到上一个正常版本。上述回滚功能对于一些业务环境比较重视热更新(HotFix)的应用尤为重要。可以采用滚动部署,更新的应用会生成新的副本,而原有的应用会正常工作。只有当新的副本通过应用探针完全诊断为正常启动后,才会将原有的应用副本停止掉。这样在更新过程中业务几乎不会中断,或中断也是秒级的切换,保证了业务执行过程的稳定性。

需要说明的是,本发明基于Docker实现容器镜像的导出导入的应用部署方式。从而,使压缩文件比传统的镜像容器导出导入包更小,节约了存储资源和导出导入事件。

请参阅图6,为现有的镜像迁移压缩示例图,包括:两个微服务的容器镜像,这两个容器镜像基于共同的基础镜像ubuntu:16.04,这两个微服务的容器镜像都是133MB。可以看到由两个微服务ubuntu-16.04:test1和ubuntu-16.04:test2分导出镜像文件,test_common_zip目录包含两个导出的文件ubuntu-16.04-test1.tar和ubuntu-16.04-test2.tar,test_common_zip.tar.gz是两个容器镜像压缩之后的压缩包,为88MB。

请参阅图7,为容器镜像迁移压缩示例图,其中,test_my_zip.tar.gz是本实施例的压缩方式产生压缩文件,可以看到经过打包压缩的压缩文件只有44MB,Graph.json为本实施例中的有向图;test_my_zip/layer目录包含的是所有镜像分层的层文件;test_my_zip/manifest.json包含所有微服务的容器镜像对应所有镜像分层的唯一第二标识符,其主要采用数组表示;test_my_zip/ubuntu-16.04-test1和test_my_zip/ubuntu-16.04-test2只包含镜像的原始构造描述文件(容器镜像描述文件)。

通过比较得出,相比现有技术中容器镜像迁移压缩方式,本实施例的容器镜像迁移压缩方式大幅度减少了多个微服务镜像在迁移过程中的尺寸,同时,打包压缩的压缩文件缩小了一半,减少系统在部署、扩容、迁移过程中存储开销和时间开销,提高了压缩效率。

请参阅图4,为本申请提供的一种容器镜像迁移压缩装置400结构框图;包括:

获取模块401,用于获取各个微服务所对应的多个容器镜像,每个所述容器镜像具有唯一的第一标识符,所述容器镜像内每一个镜像层设置有唯一第二标识符,采用所述第二标识符表示所述容器镜像内各个镜像层,每个所述容器镜像用一个数组表示,该数组由第一标识符与第二标识符构成;

具体地,基于容器技术实现各个微服务,每个微服务对应的容器导出一个容器镜像;每个所述容器镜像采用一个数组进行表示。

有向图构建模块402,用于筛选多个所述容器镜像内具有相同第二标识符的镜像层作为共享层,基于所述共享层构建关于多个所述容器镜像的有向图;

具体地,根据所述容器镜像的数量以及镜像层的层数确定有向图的节点与方向,其中,具有相同第二标识符的镜像层作为共享层的相同节点;在所述相同节点的基础上构建多个所述容器镜像的有向图。

数据合并模块403,采用容器的应用接口抽取所述有向图各个节点各自对应的层数据,将相同镜像层的层数据进行合并,并统一存储;

具体地,利用深度优先算法或广度优先算法遍历每个有向图,根据所述有向图的节点对应的第二标识符使用docker容器的应用接口读取各个节点对应的层数据,将各个节点中相同镜像层的层数据进行合并去掉相同的冗余层,统一存储于预设存储目录。

压缩文件生成模块404,用于按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,得到待迁移的压缩文件。

具体地,获取压缩指令;根据所述压缩指令的类型匹配相应的压缩方式;将多个所述容器镜像按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,得到待迁移的压缩文件。

在上述实施例基础上,还包括:

解压模块405,用于将所述压缩文件迁移到目标环境,并对所述压缩文件进行解压,依次遍历各个数组的层数据、有向图以及镜像描述文件,进而恢复所述容器镜像的层结构;

镜像迁移模块406,用于将解压后的容器镜像导入基于docker镜像管理平台;运行所述容器镜像,以形成相应的容器镜像文件。

具体地,采用与预设公钥对应的私钥对所述压缩文件进行解密得到非加密的压缩文件;

对所述解密的压缩文件进行解压缩处理,得到各微服务对应的多个容器镜像;

验证各个所述容器镜像的hash签名;

在所有容器镜像通过hash签名验证的情况下,导入基于docker镜像管理平台根据各所述容器镜像的功能和类型还原对应的微服务应用。

其中,需要说明的是,容器镜像迁移压缩装置与容器镜像迁移压缩方法为一一对应的关系,在此,各个模块与上述流程步骤所涉及的技术细节与技术效果均相同,在此不用一一赘述,请参照上述容器镜像迁移压缩方法。

下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如终端设备或服务器500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口507也连接至总线504。

通常,以下装置可以连接至I/O接口507:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置507;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。

需要说明的是,上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行图1至图3任一的步骤。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

综上所述,本申请通过筛选多个所述容器镜像内具有相同第二标识符的镜像层作为共享层,基于所述共享层构建关于多个所述容器镜像的有向图,结合有向图与共享层删除相同的冗余层,对层数据进行合并存储,按照所述容器镜像的有向图、数组、所述镜像层所对应的层数据以及镜像描述文件进行打包压缩,生成待迁移的压缩文件;从而有效减少了压缩数据的尺寸,也减少系统在部署、扩容、迁移过程中存储开销和时间开销,提高了压缩效率。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

技术分类

06120113807951