docker镜像的差量导出方法、计算机存储介质及电子设备技术

技术编号:24995394 阅读:21 留言:0更新日期:2020-07-24 17:58
本发明专利技术提供了一种docker镜像的差量导出方法、计算机存储介质及电子设备,方法包括以下步骤:S1、根据用户传入的参数,判断本地缓存中source镜像和base仓库的镜像信息是否存在;S2、根据判断结果直接读取缓存或更新缓存后再读取缓存中的source镜像和base仓库的镜像信息;S3、将步骤S2获得的source镜像的所有层和base仓库的层进行并集处理,获得一个已经存在的层的列表label;S4、通过docker API获取需要导出的所有层的名称,与列表label进行差集计算,得到需要下载的层信息;S5、将已经存在的模板信息,写入配置文件deploy中;S6、下载需要下载的层,导出docker镜像。根据本发明专利技术的方法,不需要借助docker命令行,支持跨平台操作,操作方便,占用空间小。

【技术实现步骤摘要】
docker镜像的差量导出方法、计算机存储介质及电子设备
本专利技术涉及计算机云计算领域,更具体地,涉及一种docker镜像的差量导出方法、计算机存储介质及电子设备。
技术介绍
目前市面上缺少一款docker的差量导出方案,一般的做法都是直接使用docker命令行工具直接导出全量的压缩包,这种导出没有充分利用docker镜像分层的特点。现有方案的缺点通常有两点:1、全量导出的压缩包,不能利用docker镜像分层的特点,导出的镜像一般比较大,极大浪费了带宽和存储空间2、依赖docker命令行工具,必须先安装docker,使得docker局限于linux,无法在windows上进行操作,也无法进行网页导出。
技术实现思路
有鉴于此,本专利技术提供一种docker镜像的差量导出方法、计算机存储介质及电子设备,操作方便,占用空间小。为解决上述技术问题,一方面,本专利技术提供一种docker镜像的差量导出方法,包括以下步骤:S1、根据用户传入的参数,判断本地缓存中source镜像和base仓库的镜像信息是否存在;根据判断结果直接读取缓存中的source镜像和base仓库的镜像信息或更新缓存后再读取缓存中的source镜像和base仓库的镜像信息;S3、将步骤S2获得的source镜像的所有层和base仓库的层进行并集处理,获得一个已经存在的层的列表label;S4、通过dockerAPI获取需要导出的所有层的名称,与所述列表label进行差集计算,得到需要下载的层信息;S5、将已经存在的模板信息,写入配置文件deploy中;S6、下载需要下载的层,导出docker镜像。根据本专利技术实施例的docker镜像的差量导出方法,通过在dockerAPI和docker仓库之间直接进行交互,不需要借助docker命令行,支持跨平台操作,为各个后端服务器提供统一的方式存储会话数据,并且该导出方案支持镜像与镜像之间的差异导出以及镜像与仓库之间的差异导出,操作方便,占用空间小。根据本专利技术的一些实施例,在步骤S1中,参数包括:source镜像的名称和版本号、差量导出模板镜像的名称和版本号、仓库名称。根据本专利技术的一些实施例,在步骤S1中,还包括:判断差量导出模板镜像或者仓库的配置信息的缓存是否过期。根据本专利技术的一些实施例,步骤S2包括:如果本地缓存信息不存在或者过期,通过API向docker仓库获取镜像或者仓库包含的层的信息,写入本地缓存后再进行读取;如果本地缓存信息存在,则直接读取缓存信息。根据本专利技术的一些实施例,在步骤S6中,还包括下载摘要文件,将下载的层和摘要文件整体导出。根据本专利技术的一些实施例,docker镜像的差量导出方法还包括:S7、将导出的文件进行压缩。第二方面,本专利技术实施例提供一种计算机存储介质,包括一条或多条计算机指令,所述一条或多条计算机指令在执行时实现如上述实施例所述的方法。根据本专利技术第三方面实施例的电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令;所述处理器用于调用并执行所述一条或多条计算机指令,从而实现如上述任一实施例所述的方法。附图说明图1为根据本专利技术实施例的docker镜像的差量导出方法的流程图;图2为根据本专利技术实施例的docker镜像的差量导出方法中缓存信息的格式示意图;图3为根据本专利技术实施例的docker镜像的差量导出方法中配置信息的示意图;图4为根据本专利技术实施例的docker镜像的差量导出方法中导出镜像的目录示意图;图5为根据本专利技术实施例的docker镜像的差量导出方法中导出文件的压缩效果图;图6为本专利技术实施例的电子设备的示意图。附图标记:电子设备300;存储器310;操作系统311;应用程序312;处理器320;网络接口330;输入设备340;硬盘350;显示设备360。具体实施方式下面将结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。以下实施例用于说明本专利技术,但不用来限制本专利技术的范围。下面首先结合附图具体描述根据本专利技术实施例的docker镜像的差量导出方法。如图1所示,根据本专利技术实施例的docker镜像的差量导出方法包括以下步骤:S1、根据用户传入的参数,判断本地缓存中source镜像和base仓库的镜像信息是否存在。S2、根据判断结果直接读取缓存中的source镜像和base仓库的镜像信息或更新缓存后再读取缓存中的source镜像和base仓库的镜像信息;S3、将步骤S2获得的source镜像的所有层和base仓库的层进行并集处理,获得一个已经存在的层的列表label。S4、通过dockerAPI获取需要导出的所有层的名称,与所述列表label进行差集计算,得到需要下载的层信息。S5、将已经存在的模板信息,写入配置文件deploy中。S6、下载需要下载的层,导出docker镜像。换言之,根据本专利技术实施例的docker镜像的差量导出方法在实施时,首先对用户传入的参数进行判断,即判断输入的参数是否存在于本地缓存,然后根据判断结果,确定是直接读取缓存中的source镜像和base仓库的镜像信息,还是更新缓存后再进行读取中的source镜像和base仓库的镜像信息。接着,根据从缓存读取到的信息,具体可以是source镜像的所有层和base仓库的层,将这些信息进行并集操作,最终获得一个已经存在的层的列表。然后再根据dockerAPI获得真正需要导出的所有层的名称,将其与列表进行差集计算,最终得到最后要下载的层信息。然后将已经存在的模板信息,写入到配置文件deploy中,通过设置配置文件,后续进行镜像导入时,可以根据配置文件的内容,将target镜像的层挂载到已存在的层中去。配置信息的具体内容如图3所示。最后,将需要下载的层下载,即可最终导出docker镜像。由此,根据本专利技术实施例的docker镜像的差量导出方法,通过在dockerAPI和docker仓库之间直接进行交互,不需要借助docker命令行,支持跨平台操作,为各个后端服务器提供统一的方式存储会话数据,并且该导出方案支持镜像与镜像之间的差异导出以及镜像与仓库之间的差异导出,操作方便,占用空间小。根据本专利技术的一个实施例,在步骤S1中,用户传入的参数包括:source镜像的名称和版本号、差量导出模板镜像的名称和版本号、仓库名称。进一步地,在步骤S1中,还包括:判断差量导出模板镜像或者仓库的配置信息的缓存是否过期。具体地,服务器根据用户传入的参数,判断本地缓存中source镜像和base仓库的镜像信息本地缓存是否存在,差量导出模板镜像或者仓库的配置信息,缓存信息是否过期。在本专利技术的一些具体实施方式中,步骤S2包括:如果本地缓存信息不存在或者过期,通过API向docker仓库获取镜像或者仓库包含的层的信息,写入本地缓存后再进行读取;如果本地缓存信息存本文档来自技高网...

【技术保护点】
1.一种docker镜像的差量导出方法,其特征在于,包括以下步骤:/nS1、根据用户传入的参数,判断本地缓存中source镜像和base仓库的镜像信息是否存在;/nS2、根据判断结果直接读取缓存中的source镜像和base仓库的镜像信息或更新缓存后再读取缓存中的source镜像和base仓库的镜像信息;/nS3、将步骤S2获得的source镜像的所有层和base仓库的层进行并集处理,获得一个已经存在的层的列表label;/nS4、通过docker API获取需要导出的所有层的名称,与所述列表label进行差集计算,得到需要下载的层信息;/nS5、将已经存在的模板信息,写入配置文件deploy中;/nS6、下载需要下载的层,导出docker镜像。/n

【技术特征摘要】
1.一种docker镜像的差量导出方法,其特征在于,包括以下步骤:
S1、根据用户传入的参数,判断本地缓存中source镜像和base仓库的镜像信息是否存在;
S2、根据判断结果直接读取缓存中的source镜像和base仓库的镜像信息或更新缓存后再读取缓存中的source镜像和base仓库的镜像信息;
S3、将步骤S2获得的source镜像的所有层和base仓库的层进行并集处理,获得一个已经存在的层的列表label;
S4、通过dockerAPI获取需要导出的所有层的名称,与所述列表label进行差集计算,得到需要下载的层信息;
S5、将已经存在的模板信息,写入配置文件deploy中;
S6、下载需要下载的层,导出docker镜像。


2.根据权利要求1所述的方法,其特征在于,在步骤S1中,参数包括:source镜像的名称和版本号、差量导出模板镜像的名称和版本号、仓库名称。


3.根据权利要求2所述的方法,其特征在于,在步骤S1中,还包括:判...

【专利技术属性】
技术研发人员:王杰黄松钦刘双广
申请(专利权)人:高新兴科技集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1