容器镜像下载、上传方法及装置制造方法及图纸

技术编号:23562022 阅读:70 留言:0更新日期:2020-03-25 06:43
本申请公开了一种容器镜像下载方法,包括:从镜像存储装置获取目标镜像的元数据信息,元数据信息包括目标镜像中各镜像层的层标识;基于镜像层的层标识,从镜像存储装置获取镜像层的大小;根据镜像层的大小,对镜像层进行内容切片,得到多个内容分片;从镜像存储装置并行下载并保存多个内容分片;合并所下载的多个内容分片,得到镜像层。本申请还公开了一种容器镜像上传方法。本申请提供的方案,能够有效缩短传输容器Docker镜像所需要的时间,提高网络传播效率,从而提升了专有云迭代、输出和交付的效率。

Methods and devices for downloading and uploading container image

【技术实现步骤摘要】
容器镜像下载、上传方法及装置
本申请涉及计算机
,尤其涉及一种容器镜像下载方法、上传方法及装置。
技术介绍
随着云技术的日益成熟,以政务云为代表的私有云在国家政策的大力支持下发展迅速。金融、医疗、工业制造等传统行业的上云进程加快,专有云和私有云市场也逐渐得到了云服务商、系统集成商、IDC(互联网数据中心)服务商以及各行业用户的广泛关注。随着专有云市场的不断壮大,内部专有云演练的迭代也越来越频繁,现场和内部演练都需要不断地定制化输出专有云部署包,其中就包括容器Docker镜像包。目前,专有云的镜像数据量较大,往往在300GB~400GB左右,可能会占据整个专有云部署包75%左右的空间,例如,专有云部署包的大小为538GB左右,其中镜像的大小可能达到404GB左右。因此,为了提升专有云迭代、输出和交付的效率,如何能有效缩短容器Docker镜像的网络传播时间,提高网络传播效率,成为一个亟待解决的问题。
技术实现思路
本申请实施例提供一种容器镜像下载方法和装置,能够有效缩短下载容器Docker镜像所需要的网络传播时间,提高网络传播效率,从而提升了专有云迭代、输出和交付的效率。本申请实施例还提供一种容器镜像上传方法和装置,能够有效缩短上传容器Docker镜像所需要的网络传播时间,提高网络传播效率,从而提升了专有云迭代、输出和交付的效率。本申请实施例采用下述技术方案:第一方面,本申请实施例提供一种容器镜像下载方法,其中,所述方法包括:从镜像存储装置获取目标镜像的元数据信息,所述元数据信息包括所述目标镜像中各镜像层的层标识;基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小;根据所述镜像层的大小,对所述镜像层进行内容切片,得到多个内容分片;从所述镜像存储装置并行下载并保存所述多个内容分片;合并所下载的多个内容分片,得到所述镜像层。优选的,本申请实施例第一方面提供的方法中,根据所述镜像层的大小,对所述镜像层进行内容切片,包括:根据所述镜像层的大小,确定与所述镜像层相匹配的内容分片大小;根据所述内容分片大小,将所述镜像层划分为多个顺序排列的内容分片,所述内容分片的数量根据所述镜像层的大小和所述内容分片大小确定。优选的,本申请实施例第一方面提供的方法中,保存所述多个内容分片,包括:为每个内容分片生成分片标识,所述分片标识中包括所述内容分片的分片序号,所述分片序号用于指示对应内容分片的顺序;相对应的保存所述内容分片及分片标识。优选的,本申请实施例第一方面提供的方法中,所述分片标识中还包括所述镜像层的下载标识,所述下载标识用于指示对应内容分片的下载批次信息。优选的,本申请实施例第一方面提供的方法中,合并所下载的多个内容分片,包括:在已存在合并后镜像层的情况下,检查所述合并后镜像层的数据是否完整;若所述合并后镜像层的数据完整,则删除下载的所述多个内容分片;若所述合并后镜像层的数据不完整,则删除所述合并后镜像层,并合并所下载的多个内容分片。优选的,本申请实施例第一方面提供的方法中,检查所述合并后镜像层的数据是否完整,包括:确定所述合并后镜像层的字节数目;在所述合并后镜像层的字节数目与所述镜像层的大小一致的情况下,确定所述合并后镜像层的数据完整;在所述合并后镜像层的字节数目与所述镜像层的大小不一致的情况下,确定所述合并后镜像层的数据不完整。优选的,本申请实施例第一方面提供的方法中,在合并所下载的多个内容分片之前,所述方法还包括:判断所述镜像层是否处于合并中状态;合并所下载的多个内容分片,具体为:在所述镜像层未处于合并中状态的情况下,合并所下载的多个内容分片。优选的,本申请实施例第一方面提供的方法中,在从镜像存储装置获取目标镜像的元数据信息之后,所述方法还包括:判断是否已存在与所述层标识相对应的镜像层;则基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小,具体为:在未存在与所述层标识相对应的镜像层的情况下,基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小。优选的,本申请实施例第一方面提供的方法中,保存所述多个内容分片,包括:将所述多个内容分片保存在缓存中;则在合并所下载的多个内容分片,得到所述镜像层之后,所述方法还包括:将所述镜像层写入磁盘中。优选的,本申请实施例第一方面提供的方法中,将所述镜像层写入磁盘中,具体为:采用无缓存的流式输入输出方式,将所述镜像层写入磁盘中。优选的,本申请实施例第一方面提供的方法中,在从镜像存储装置获取目标镜像的元数据信息之后,所述方法还包括:根据所述目标镜像中各镜像层的层标识,判断所述各镜像层中是否存在重复的镜像层;若所述各镜像层中存在重复的镜像层,则将所述重复的镜像层中任一个镜像层确定为目标镜像层,并从所述各镜像层中删除与所述目标镜像层重复的其他镜像层;则基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小,具体包括:基于所述目标镜像层的层标识,从所述镜像存储装置获取所述目标镜像层的大小。第二方面,本申请实施例还提供一种容器镜像上传方法,所述方法包括:获取目标镜像的元数据信息,所述元数据信息包括所述目标镜像中各镜像层的层标识;根据所述各镜像层的层标识,对所述各镜像层进行去重处理,得到待上传的目标镜像层;向镜像存储装置上传所述目标镜像层;在完成所述目标镜像层的上传之后,向所述镜像存储装置上传所述目标镜像的元数据信息。优选的,本申请实施例第二方面提供的方法中,向镜像存储装置上传所述目标镜像层,包括:向所述镜像存储装置发送镜像层上传请求;接收所述镜像存储装置响应于所述镜像层上传请求返回的请求标识;根据所述请求标识和所述目标镜像层的层标识,将所述目标镜像层上传至所述镜像存储装置;在上传所述目标镜像层之后,向所述镜像存储装置发送镜像层上传完成请求。优选的,本申请实施例第二方面提供的方法中,向镜像存储装置上传所述目标镜像层,具体为:向镜像存储装置并行上传多个所述目标镜像层。优选的,本申请实施例第二方面提供的方法中,根据所述各镜像层的层标识,对所述各镜像层进行去重处理,包括:根据所述各镜像层的层标识,判断所述各镜像层中是否存在重复的镜像层;若所述各镜像层中存在重复的镜像层,则将所述重复的镜像层中任一个镜像层确定为所述目标镜像层,并从所述各镜像层中删除与该目标镜像层重复的其他镜像层。优选的,本申请实施例第二方面提供的方法中,在向镜像存储装置上传所述目标镜像层之前,所述方法还包括:根据所述目标镜像层的层标识,向所述镜像存储装置请求查询所述镜像存储装置中是否已存在该目标镜像层;向镜像存储装置上传所述目标镜像层本文档来自技高网...

【技术保护点】
1.一种容器镜像下载方法,所述方法包括:/n从镜像存储装置获取目标镜像的元数据信息,所述元数据信息包括所述目标镜像中各镜像层的层标识;/n基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小;/n根据所述镜像层的大小,对所述镜像层进行内容切片,得到多个内容分片;/n从所述镜像存储装置并行下载并保存所述多个内容分片;/n合并所下载的多个内容分片,得到所述镜像层。/n

【技术特征摘要】
1.一种容器镜像下载方法,所述方法包括:
从镜像存储装置获取目标镜像的元数据信息,所述元数据信息包括所述目标镜像中各镜像层的层标识;
基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小;
根据所述镜像层的大小,对所述镜像层进行内容切片,得到多个内容分片;
从所述镜像存储装置并行下载并保存所述多个内容分片;
合并所下载的多个内容分片,得到所述镜像层。


2.根据权利要求1所述方法,其中,根据所述镜像层的大小,对所述镜像层进行内容切片,包括:
根据所述镜像层的大小,确定与所述镜像层相匹配的内容分片大小;
根据所述内容分片大小,将所述镜像层划分为多个顺序排列的内容分片,所述内容分片的数量根据所述镜像层的大小和所述内容分片大小确定。


3.根据权利要求2所述方法,其中,保存所述多个内容分片,包括:
为每个内容分片生成分片标识,所述分片标识中包括所述内容分片的分片序号,所述分片序号用于指示对应内容分片的顺序;
相对应的保存所述内容分片及分片标识。


4.根据权利要求3所述方法,其中,所述分片标识中还包括所述镜像层的下载标识,所述下载标识用于指示对应内容分片的下载批次信息。


5.根据权利要求1所述方法,其中,合并所下载的多个内容分片,包括:
在已存在合并后镜像层的情况下,检查所述合并后镜像层的数据是否完整;
若所述合并后镜像层的数据完整,则删除下载的所述多个内容分片;
若所述合并后镜像层的数据不完整,则删除所述合并后镜像层,并合并所下载的多个内容分片。


6.根据权利要求5所述方法,其中,检查所述合并后镜像层的数据是否完整,包括:
确定所述合并后镜像层的字节数目;
在所述合并后镜像层的字节数目与所述镜像层的大小一致的情况下,确定所述合并后镜像层的数据完整;
在所述合并后镜像层的字节数目与所述镜像层的大小不一致的情况下,确定所述合并后镜像层的数据不完整。


7.根据权利要求1所述方法,其中,在合并所下载的多个内容分片之前,所述方法还包括:
判断所述镜像层是否处于合并中状态;
合并所下载的多个内容分片,具体为:
在所述镜像层未处于合并中状态的情况下,合并所下载的多个内容分片。


8.根据权利要求1所述方法,其中,在从镜像存储装置获取目标镜像的元数据信息之后,所述方法还包括:
判断是否已存在与所述层标识相对应的镜像层;
则基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小,具体为:
在未存在与所述层标识相对应的镜像层的情况下,基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小。


9.根据权利要求1所述方法,其中,保存所述多个内容分片,包括:
将所述多个内容分片保存在缓存中;
则在合并所下载的多个内容分片,得到所述镜像层之后,所述方法还包括:
将所述镜像层写入磁盘中。


10.根据权利要求9所述方法,其中,将所述镜像层写入磁盘中,具体为:
采用无缓存的流式输入输出方式,将所述镜像层写入磁盘中。


11.根据权利要求1所述方法,其中,在从镜像存储装置获取目标镜像的元数据信息之后,所述方法还包括:
根据所述目标镜像中各镜像层的层标识,判断所述各镜像层中是否存在重复的镜像层;
若所述各镜像层中存在重复的镜像层,则将所述重复的镜像层中任一个镜像层确定为目标镜像层,并从所述各镜像层中删除与所述目标镜像层重复的其他镜像层;
则基于所述镜像层的层标识,从所述镜像存储装置获取所述镜像层的大小,具体包括:
基于所述目标镜像层的层标识,从所述镜像存储装置获取所述目标镜像层的大小。


12.一种容器镜像上传方法,所述方法包括:
获取目标镜像的元数据信息,所述元数据信息包括所述目标镜像中各镜像层的层标识;
根据所述各镜像层的层标识,对所述各镜像层进行去重处理,得到待上传的目标镜像层;
向镜像存储装置上传所述目标镜像层;
在完成所述目标镜像层的上传之后,向所述镜像存储装置上传所述目标镜像的元数据信息。


13.根据权利要求12所述方法,其中,向镜像存储装置上传所述目标镜像层,包括:
向所述镜像存储装置发送镜像层上传请求;
接收所述镜像存储装置响应于所述镜像层上传请求返回的请求标识;
根据所述请求标识和所述目标镜像层的层标识,将所述目标...

【专利技术属性】
技术研发人员:章成飞
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1