[发明专利]docker容器镜像存储、拉取方法、装置及计算机可读存储介质在审
申请号: | 202011225865.X | 申请日: | 2020-11-05 |
公开(公告)号: | CN112433810A | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 张德波;刘茂扬 | 申请(专利权)人: | 北京浪潮数据技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;H04L29/08 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘新雷 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | docker 容器 存储 方法 装置 计算机 可读 介质 | ||
本申请公开了一种docker容器镜像存储、拉取方法、装置及计算机可读存储介质,包括:获取镜像的条目信息;按照所述条目信息,以条目为单位对所述镜像进行划分,得到多个子镜像;对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像;获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目;将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层。本申请将一整个镜像按照条目划分为了多个子镜像,并单独压缩,使得可以直接获取部分压缩子镜像,而不用一次性获取全部子镜像,并且设置索引文件条目,加快对压缩子镜像的索引速度,为提高镜像加载速度创造了前提。
技术领域
本发明涉及计算机技术领域,特别涉及一种docker容器镜像存储、拉取方法、装置及计算机可读存储介质。
背景技术
现有技术中,启动容器本身速度很快。但是在大部分情况下,启动容器需要先从远程的容器仓库中拉取整个容器镜像并将它写入本地计算机的磁盘。这对计算机资源造成了一定浪费。对于小容器,此问题很少被注意到。但是,对于较大的容器,拉取操作很快成为启动容器的最慢部分。这与在Iaas平台(Iaas,Infrastructure as a Service,基础设施即服务)上启动虚拟机形成对比:即使是数百GB的虚拟机镜像,虚拟机也会在几秒钟内启动,这是因为虚拟机启动时是按需从网络读取文件。
相关研究表明,docker(应用容器引擎)镜像拉取所占用的时间,可以占到容器启动总用时的76%。这个问题一直困扰着各类工作负载。虽然有各种方法可以尽量缩小docker镜像的大小,但是仍然无法避免某些场景需要用到大体积的镜像,比如机器学习。
为此,需要一种能够缩短docker容器镜像拉取时间的方法。
发明内容
有鉴于此,本发明的目的在于提供一种docker容器镜像存储、拉取方法、装置及计算机可读存储介质,能够缩短docker容器镜像拉取时间。其具体方案如下:
一种docker容器镜像存储方法,包括:
获取镜像的条目信息;
按照所述条目信息,以条目为单位对所述镜像进行划分,得到多个子镜像;
对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像;
获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目;
将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层。
可选的,所述得到多个子镜像之后,还包括:
判断每个子镜像的大小是否超过预设的切分阈值;
对大小超过所述切分阈值的子镜像进行切分,得到多个新的子镜像。
可选的,所述将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层过程,包括:
将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层;
其中,所述镜像运行时所必须的压缩子镜像在镜像层中相邻存储。
可选的,还包括:
将只包括元数据的子镜像与其它子镜像一同压缩为一个压缩子镜像。
本发明还公开了一种docker容器镜像定向拉取方法,包括:
发送镜像拉取请求至远程镜像库;
从所述远程镜像库中获取与所述镜像拉取请求对应的镜像的镜像层中的索引文件条目;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京浪潮数据技术有限公司,未经北京浪潮数据技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011225865.X/2.html,转载请声明来源钻瓜专利网。