CN112433810A - docker容器镜像存储、拉取方法、装置及计算机可读存储介质 - Google Patents

docker容器镜像存储、拉取方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN112433810A
CN112433810A CN202011225865.XA CN202011225865A CN112433810A CN 112433810 A CN112433810 A CN 112433810A CN 202011225865 A CN202011225865 A CN 202011225865A CN 112433810 A CN112433810 A CN 112433810A
Authority
CN
China
Prior art keywords
image
mirror
sub
images
compressed
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.)
Granted
Application number
CN202011225865.XA
Other languages
English (en)
Other versions
CN112433810B (zh
Inventor
张德波
刘茂扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Inspur Data Technology Co Ltd
Original Assignee
Beijing Inspur Data Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Inspur Data Technology Co Ltd filed Critical Beijing Inspur Data Technology Co Ltd
Priority to CN202011225865.XA priority Critical patent/CN112433810B/zh
Publication of CN112433810A publication Critical patent/CN112433810A/zh
Application granted granted Critical
Publication of CN112433810B publication Critical patent/CN112433810B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种docker容器镜像存储、拉取方法、装置及计算机可读存储介质,包括:获取镜像的条目信息;按照所述条目信息,以条目为单位对所述镜像进行划分,得到多个子镜像;对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像;获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目;将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层。本申请将一整个镜像按照条目划分为了多个子镜像,并单独压缩,使得可以直接获取部分压缩子镜像,而不用一次性获取全部子镜像,并且设置索引文件条目,加快对压缩子镜像的索引速度,为提高镜像加载速度创造了前提。

Description

docker容器镜像存储、拉取方法、装置及计算机可读存储介质
技术领域
本发明涉及计算机技术领域,特别涉及一种docker容器镜像存储、拉取方法、装置及计算机可读存储介质。
背景技术
现有技术中,启动容器本身速度很快。但是在大部分情况下,启动容器需要先从远程的容器仓库中拉取整个容器镜像并将它写入本地计算机的磁盘。这对计算机资源造成了一定浪费。对于小容器,此问题很少被注意到。但是,对于较大的容器,拉取操作很快成为启动容器的最慢部分。这与在Iaas平台(Iaas,Infrastructure as a Service,基础设施即服务)上启动虚拟机形成对比:即使是数百GB的虚拟机镜像,虚拟机也会在几秒钟内启动,这是因为虚拟机启动时是按需从网络读取文件。
相关研究表明,docker(应用容器引擎)镜像拉取所占用的时间,可以占到容器启动总用时的76%。这个问题一直困扰着各类工作负载。虽然有各种方法可以尽量缩小docker镜像的大小,但是仍然无法避免某些场景需要用到大体积的镜像,比如机器学习。
为此,需要一种能够缩短docker容器镜像拉取时间的方法。
发明内容
有鉴于此,本发明的目的在于提供一种docker容器镜像存储、拉取方法、装置及计算机可读存储介质,能够缩短docker容器镜像拉取时间。其具体方案如下:
一种docker容器镜像存储方法,包括:
获取镜像的条目信息;
按照所述条目信息,以条目为单位对所述镜像进行划分,得到多个子镜像;
对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像;
获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目;
将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层。
可选的,所述得到多个子镜像之后,还包括:
判断每个子镜像的大小是否超过预设的切分阈值;
对大小超过所述切分阈值的子镜像进行切分,得到多个新的子镜像。
可选的,所述将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层过程,包括:
将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层;
其中,所述镜像运行时所必须的压缩子镜像在镜像层中相邻存储。
可选的,还包括:
将只包括元数据的子镜像与其它子镜像一同压缩为一个压缩子镜像。
本发明还公开了一种docker容器镜像定向拉取方法,包括:
发送镜像拉取请求至远程镜像库;
从所述远程镜像库中获取与所述镜像拉取请求对应的镜像的镜像层中的索引文件条目;
利用所述索引文件条目从所述镜像层中拉取所述镜像运行时所必须的压缩子镜像;
其中,所述镜像层为利用如前述的docker容器镜像存储方法生成的镜像层。
可选的,还包括:
将所述索引文件条目存储至内存中,以便后续拉取其余压缩子镜像。
可选的,还包括:
在负载低于预设的负载阈值后,利用内存中的所述索引文件条拉取除运行时所必须的压缩子镜像外的压缩子镜像。
本发明还公开了一种docker容器镜像存储方法,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如前述的docker容器镜像存储方法。
本发明还公开了一种docker容器镜像定向拉取方法,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如前述的docker容器镜像定向拉取方法。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的docker容器镜像存储方法。
本发明中,docker容器镜像存储方法,包括:获取镜像的条目信息;按照所述条目信息,以条目为单位对所述镜像进行划分,得到多个子镜像;对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像;获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目;将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层。
本发明将一整个镜像按照条目划分为了多个子镜像,并单独压缩,得到包括多个压缩后的压缩子镜像的镜像层,使得可以直接获取部分压缩子镜像,而不用一次性获取全部子镜像,并且设置索引文件条目,加快对压缩子镜像的索引速度,为提高镜像加载速度创造了前提。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种docker容器镜像存储方法流程示意图;
图2为本发明实施例公开的另一种docker容器镜像存储方法流程示意图;
图3为本发明实施例公开的一种镜像层示意图;
图4为本发明实施例公开的docker容器镜像定向拉取方法流程示意图;
图5为本发明实施例公开的另一种docker容器镜像定向拉取流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种docker容器镜像存储方法,参见图1所示,该方法包括:
S11:获取镜像的条目信息。
具体的,一个镜像在制作过程中会以条目为单位进行制作,因此,一个镜像中包括多个条目,所有条目全部结合到一起形成一个完整的镜像,因此,可以获取镜像中已有的条目信息。
S12:按照条目信息,以条目为单位对镜像进行划分,得到多个子镜像。
具体的,根据条目信息,可以得到镜像中条目数量和各条目的大小、起始位置和结束位置等等信息,因此,可以按照条目信息以条目为单位对一个大的镜像进行切割划分,得到多个子镜像,每个子镜像对应一个条目。
S13:对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像。
具体的,对每个子镜像单独进行压缩,不再将整个镜像压缩为一整个压缩文件,而是以子镜像为单位压缩成多个压缩子镜像,多个压缩子镜像形成镜像的镜像层。
具体的,可以以Gzip(GNUzip)的格式进行压缩。
S14:获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目。
具体的,压缩后获取每个压缩子镜像在镜像层中的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目,通过每个压缩子镜像的块的大小和偏移量以及每个文件的元数据,可以精确的查找到每个压缩子镜像,因此,通过读取索引文件条目中块的大小和偏移量以及文件的元数据,便可以查找到相应的压缩子镜像。
具体的,每个压缩子镜像的偏移量记载了压缩子镜像的起始位置,配合其块的大小,能够确定结束位置,根据元数据,可以识别压缩子镜像。
S15:将多个压缩子镜像和索引文件条目以镜像层的形式存储,得到镜像的镜像层。
具体的,将属于一个镜像的全部压缩子镜像和相应的索引文件条目以镜像层的形式存储,得到镜像的镜像层,镜像的镜像层会形成如下形式,例如,Gzip(TarF(file1))+Gzip(TarF(file2))+Gzip(TarF(索引文件条目)+TarFooter),其中,Gzip表示压缩后的压缩格式,Gzip(TarF(file1))和Gzip(TarF(file2))表示单独压缩后的条目TarF(file1)和条目TarF(file2),Gzip(TarF(索引文件条目)表示压缩后的索引文件条目,TarFooter表示镜像的底座。
可以理解的是,通过将镜像文件中的各个条目单独压缩,使得可以从镜像层中获取部分压缩子镜像,而不用一次性获取全部镜像文件,或者对全部镜像文件解锁后才能够获取部分子镜像,这样当用户只需部分镜像文件先行运行时,只需从镜像层获取所需的压缩子镜像就可以,大大提高了镜像获取速度。并且在获取压缩子镜像时可以首先读取索引文件条目,从中快速确定出所需压缩子镜像的存储位置,快速获取到压缩子镜像,而不用对全部压缩子镜像进行扫描识别,提高了压缩子镜像的识别速度。
可见,本发明实施例将一整个镜像按照条目划分为了多个子镜像,并单独压缩,得到包括多个压缩后的压缩子镜像的镜像层,使得可以直接获取部分压缩子镜像,而不用一次性获取全部子镜像,并且设置索引文件条目,加快对压缩子镜像的索引速度,为提高镜像加载速度创造了前提。
进一步的,容器运行镜像时,需要保证有最低限度的多个子镜像,此类子镜像为镜像运行时所必须的子镜像,此类子镜像可以预先对镜像进行运行测试,确定出运行时所必须的子镜像,为了进一步的加快镜像的提取速度,可以将镜像运行时所必须的压缩子镜像在镜像层中相邻存储,并在索引文件条目中精简相关的索引信息,例如,索引文件条目中,会单独记载每个条目的信息,如,条目1的信息、条目2的信息和条目3的信息,要想获取3个条目,需要分别读取各自条目的信息确定3个条目的各自位置,而相邻的必须的压缩子镜像,可以简化记载,例如,条目1的信息、条目2至4的信息,条目5的信息,其中,条目2、3和4为必须条目,其已经按照相邻状态存储,此时,可以记录条目2的偏移量,相当于条目2的起始位置,再记载条目2至4整体的块大小,确定条目4的结束位置,这样就不用记载条目3和4的偏移量,可以直接将条目2至4作为一个整体查询和获取,减少了索引速度。并且,相邻的条目能够减少查询指针偏移量的变化,减少指针反复跳跃大量偏移量,减缓查询速度。
可以理解的是,上述条目对应镜像层中相应的压缩后的压缩子镜像。
本发明实施例公开了一种具体的docker容器镜像存储方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体的:
S21:获取镜像的条目信息;
S22:按照条目信息,以条目为单位对镜像进行划分,得到多个子镜像;
S23:判断每个子镜像的大小是否超过预设的切分阈值;
S24:对大小超过切分阈值的子镜像进行切分,得到多个新的子镜像。
具体的,在划分多个子镜像后,还可以继续对过大的子镜像进行切分,以便加快子镜像的下载速度,例如,切分阈值为100MB,一个子镜像的大小为150MB,则可以将这个子镜像重新切分为一个100MB和50MB的两个全新子镜像,也可以切分两个75MB等大的全新子镜像,假如一个子镜像的大小为300MB,则可以划分为3个100MB全新子镜像,具体划分方式可以根据实际情况进行设定。
具体的,划分后的镜像层会形成如下形式,例如,Gzip(TarF(file1))+Gzip(TarF(file2))+Gzip(TarF(file3_chunk1))+Gzip(TarF(file3_chunk2))+Gzip(TarF(索引文件条目)+TarFooter),其中,TarF(file3_chunk1)和TarF(file3_chunk2)便是file3拆分为了两个子镜像。
可以理解的是,重新切分后的子镜像继续执行后续S25至S27的步骤,进行压缩。若未超过切分阈值则不进行切分,直接执行S25至S27的后续步骤。
S25:对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像。
具体的,在执行步骤S22划分过程中,会划分出多个只包含元数据的条目,得到只包括元数据的子镜像,此类子镜像所需的存储空间很小,没有必要单独压缩,单独压缩反而会导致子镜像过多,影响索引速度,为此,可以将只包括元数据的子镜像与其它子镜像一同压缩为一个压缩子镜像。在划分为子镜像前,镜像中的每个条目就有相互相邻的关系,因此,可以继续按照此相邻关系,将只包括元数据的条目即子镜像与其相邻的包括数据的子镜像整体压缩,减少子镜像数量,提高索引速度。
具体的,参见图3所示,图中gizp0、gizp1、gizpn-1和gizpn分别表示利用gizp格式压缩后的4个压缩子镜像,其中,Metadata为元数据条目,File为非仅包括元数据的条目,stargz.index.json为索引文件条目,Footer为镜像的底座。
S26:获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目;
S27:将多个压缩子镜像和索引文件条目以镜像层的形式存储,得到镜像的镜像层。
相应的,本发明实施例还公开了一种docker容器镜像定向拉取方法,参见图4所示,该方法包括:
S31:发送镜像拉取请求至远程镜像库。
具体的,当本地未保存所需镜像,则发送相应的镜像拉取请求至远程镜像库,以便从远程镜像库中拉取所需的镜像。
S32:从远程镜像库中获取与镜像拉取请求对应的镜像的镜像层中的索引文件条目。
具体的,远程镜像库中所存储的镜像的镜像层为利用前述的docker容器镜像存储方法生成的镜像层,为此,为了快速获取所需的镜像,从镜像层中直接读取相应的索引文件条目,以便后续根据索引文件条目快速查找所需的压缩子镜像。
S33:利用索引文件条目从镜像层中拉取镜像运行时所必须的压缩子镜像。
具体的,利用索引文件条目中记载的每个压缩子镜像在镜像层中的块的大小和偏移量,以及每个文件的元数据从中确定出镜像运行时所必须的压缩子镜像的存储位置,并将所必须的压缩子镜像拉取出。
需要说明的是,所必须的压缩子镜像可以由本地指定,也可以利用索引文件条目中预先记载的所必须的压缩子镜像进行拉取,拉取的所必须的压缩子镜像占所需拉取的镜像的一部分,剩余压缩子镜像可以暂时不用从远程镜像库中拉取,从而实现镜像的部分拉取,加快拉取速度。拉取全部所必须的压缩子镜像后,可以先行运行镜像的部分功能,执行用户所需的初步任务,若用户后续需要其它功能,可以继续利用索引文件条目从远程镜像库中拉取其余压缩子镜像。
可见,本发明实施例能够从远程镜像库中拉取部分必须的压缩子镜像,而不用一次性拉取所需镜像的全部子镜像,从而加快了镜像的拉取速度,能够利用部分压缩子镜像快速运行镜像,满足用户的初步要求,并且可以在后续过程中拉取其余压缩子镜像,不影响完整镜像的运行。
可以理解的是,拉取的压缩子镜像解压后,存储到本地docker中运行。
具体的,可以利用Containerd中的Seekshotter插件,它被用来存储拉取到本地的镜像层。在拉取压缩子镜像后,Containerd会提取其中的镜像层,并重新将拉取到的压缩子镜像叠加在一起,存储为一个快照。当Containerd启动容器时,会向seekshotter询快照,并将其作为容器的根文件系统,从而实现利用镜像的部分条目启动。
本发明实施例公开了一种具体的docker容器镜像定向拉取方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图5所示,具体的:
S41:发送镜像拉取请求至远程镜像库;
S42:从远程镜像库中获取与镜像拉取请求对应的镜像的镜像层中的索引文件条目;
S43:利用索引文件条目从镜像层中拉取镜像运行时所必须的压缩子镜像;
S44:将索引文件条目存储至内存中,以便后续拉取其余压缩子镜像。
具体的,在获取到索引文件条目后,可以将索引文件条目存储至本地内存中,这样后续拉取相应的压缩子镜像时,可以直接根据本地内存中的索引文件条目快速查找相应的压缩子镜像所在镜像层的具体位置,而不用再次到远程镜像库中重新获取索引文件条目,提高了拉取速度。
S45:在负载低于预设的负载阈值后,利用内存中的索引文件条拉取除运行时所必须的压缩子镜像外的压缩子镜像。
具体的,为了减少拉取镜像对系统负载的影响,拉取必须的压缩子镜像后,可以在本地负载低于预设的负载阈值后,利用内存中的索引文件条拉取除运行时所必须的压缩子镜像外的其余压缩子镜像,这样能够保证在对系统影响最小的情况下,拉取全部镜像,减少对用户使用镜像的影响,减少等待时间。
此外,本发明实施例还公开了一种docker容器镜像存储方法,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如前述的docker容器镜像存储方法。
另外,本发明实施例还公开了一种docker容器镜像定向拉取方法,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如前述的docker容器镜像定向拉取方法。
此外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的docker容器镜像存储方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种docker容器镜像存储方法,其特征在于,包括:
获取镜像的条目信息;
按照所述条目信息,以条目为单位对所述镜像进行划分,得到多个子镜像;
对每个子镜像单独进行压缩,得到以镜像层的形式存储的多个压缩后的压缩子镜像;
获取每个压缩子镜像对应的块的大小和偏移量,以及每个文件的元数据,得到索引文件条目;
将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层。
2.根据权利要求1所述的docker容器镜像存储方法,其特征在于,所述得到多个子镜像之后,还包括:
判断每个子镜像的大小是否超过预设的切分阈值;
对大小超过所述切分阈值的子镜像进行切分,得到多个新的子镜像。
3.根据权利要求2所述的云管理平台中SDS状态检测方法,其特征在于,所述将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层过程,包括:
将所述多个压缩子镜像和所述索引文件条目以镜像层的形式存储,得到所述镜像的镜像层;
其中,所述镜像运行时所必须的压缩子镜像在镜像层中相邻存储。
4.根据权利要求3所述的docker容器镜像存储方法,其特征在于,还包括:
将只包括元数据的子镜像与其它子镜像一同压缩为一个压缩子镜像。
5.一种docker容器镜像定向拉取方法,其特征在于,包括:
发送镜像拉取请求至远程镜像库;
从所述远程镜像库中获取与所述镜像拉取请求对应的镜像的镜像层中的索引文件条目;
利用所述索引文件条目从所述镜像层中拉取所述镜像运行时所必须的压缩子镜像;
其中,所述镜像层为利用如权利要求1至4任一项所述的docker容器镜像存储方法生成的镜像层。
6.根据权利要求5所述的docker容器镜像定向拉取方法,其特征在于,还包括:
将所述索引文件条目存储至内存中,以便后续拉取其余压缩子镜像。
7.根据权利要求6所述的docker容器镜像定向拉取方法,其特征在于,还包括:
在负载低于预设的负载阈值后,利用内存中的所述索引文件条拉取除运行时所必须的压缩子镜像外的压缩子镜像。
8.一种docker容器镜像存储方法,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至4任一项所述的docker容器镜像存储方法。
9.一种docker容器镜像定向拉取方法,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求5至7任一项所述的docker容器镜像定向拉取方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的docker容器镜像存储方法。
CN202011225865.XA 2020-11-05 2020-11-05 docker容器镜像存储、拉取方法、装置及计算机可读存储介质 Active CN112433810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011225865.XA CN112433810B (zh) 2020-11-05 2020-11-05 docker容器镜像存储、拉取方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011225865.XA CN112433810B (zh) 2020-11-05 2020-11-05 docker容器镜像存储、拉取方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112433810A true CN112433810A (zh) 2021-03-02
CN112433810B CN112433810B (zh) 2023-12-26

Family

ID=74694689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011225865.XA Active CN112433810B (zh) 2020-11-05 2020-11-05 docker容器镜像存储、拉取方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112433810B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760453A (zh) * 2021-08-04 2021-12-07 南方电网科学研究院有限责任公司 容器镜像分发系统及容器镜像推送、拉取和删除方法
CN114756333A (zh) * 2022-05-23 2022-07-15 龙芯中科技术股份有限公司 镜像处理方法、装置、电子设备及可读介质
CN115509624A (zh) * 2022-10-25 2022-12-23 中南大学 面向流式加载的镜像融合方法及系统
CN113760453B (zh) * 2021-08-04 2024-05-28 南方电网科学研究院有限责任公司 容器镜像分发系统及容器镜像推送、拉取和删除方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278992B1 (en) * 1997-03-19 2001-08-21 John Andrew Curtis Search engine using indexing method for storing and retrieving data
CN103942292A (zh) * 2014-04-11 2014-07-23 华为技术有限公司 虚拟机镜像文件处理方法、装置及系统
CN104239575A (zh) * 2014-10-08 2014-12-24 清华大学 一种虚拟机镜像文件存储、分发方法及装置
CN107729020A (zh) * 2017-10-11 2018-02-23 北京航空航天大学 一种实现大规模容器快速部署的方法
CN107819802A (zh) * 2016-09-13 2018-03-20 华为软件技术有限公司 一种在节点集群中的镜像获取方法、节点设备及服务器
CN108322496A (zh) * 2017-01-17 2018-07-24 北京京东尚科信息技术有限公司 镜像文件分发方法及系统、计算机可读存储介质、电子设备
CN108509253A (zh) * 2018-04-03 2018-09-07 南京中兴软创软件技术有限公司 一种快速发布大量容器镜像的方法
CN108683747A (zh) * 2018-06-11 2018-10-19 华为技术有限公司 资源获取、分发、下载方法、装置、设备及存储介质
CN109725980A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 生成镜像标签的方法、设备以及计算机可读介质
CN110413455A (zh) * 2019-07-11 2019-11-05 北京百度网讯科技有限公司 容器镜像处理方法、装置、计算机设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278992B1 (en) * 1997-03-19 2001-08-21 John Andrew Curtis Search engine using indexing method for storing and retrieving data
CN103942292A (zh) * 2014-04-11 2014-07-23 华为技术有限公司 虚拟机镜像文件处理方法、装置及系统
CN104239575A (zh) * 2014-10-08 2014-12-24 清华大学 一种虚拟机镜像文件存储、分发方法及装置
CN107819802A (zh) * 2016-09-13 2018-03-20 华为软件技术有限公司 一种在节点集群中的镜像获取方法、节点设备及服务器
CN108322496A (zh) * 2017-01-17 2018-07-24 北京京东尚科信息技术有限公司 镜像文件分发方法及系统、计算机可读存储介质、电子设备
CN107729020A (zh) * 2017-10-11 2018-02-23 北京航空航天大学 一种实现大规模容器快速部署的方法
CN109725980A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 生成镜像标签的方法、设备以及计算机可读介质
CN108509253A (zh) * 2018-04-03 2018-09-07 南京中兴软创软件技术有限公司 一种快速发布大量容器镜像的方法
CN108683747A (zh) * 2018-06-11 2018-10-19 华为技术有限公司 资源获取、分发、下载方法、装置、设备及存储介质
CN110413455A (zh) * 2019-07-11 2019-11-05 北京百度网讯科技有限公司 容器镜像处理方法、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHUO H.等: "FastBuild: Accelerating Docker Image Building for Efficient Development and Deployment of Container", 2019 35TH SYMPOSIUM ON MASS STORAGE SYSTEMS AND TECHNOLOGIES (MSST) *
陆志刚;徐继伟;黄涛;: "基于分片复用的多版本容器镜像加载方法", 软件学报, no. 06 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760453A (zh) * 2021-08-04 2021-12-07 南方电网科学研究院有限责任公司 容器镜像分发系统及容器镜像推送、拉取和删除方法
CN113760453B (zh) * 2021-08-04 2024-05-28 南方电网科学研究院有限责任公司 容器镜像分发系统及容器镜像推送、拉取和删除方法
CN114756333A (zh) * 2022-05-23 2022-07-15 龙芯中科技术股份有限公司 镜像处理方法、装置、电子设备及可读介质
CN115509624A (zh) * 2022-10-25 2022-12-23 中南大学 面向流式加载的镜像融合方法及系统

Also Published As

Publication number Publication date
CN112433810B (zh) 2023-12-26

Similar Documents

Publication Publication Date Title
US8316022B2 (en) Information processing apparatus and information processing method
JP5103807B2 (ja) 制御プログラム、制御方法、情報処理装置及び情報処理システム
US20110093466A1 (en) Heuristic event clustering of media using metadata
US9292387B2 (en) Medium, control method, and information processing apparatus
CN109522160B (zh) 通过保存文件信息摘要进行文件目录比较备份方法和系统
CN102156751A (zh) 一种提取视频指纹的方法及装置
CN112433810A (zh) docker容器镜像存储、拉取方法、装置及计算机可读存储介质
US10684923B2 (en) Real time file alteration sensing-based automatic backup device
CN113239004B (zh) 一种笔记同步方法及装置
CN107451138A (zh) 一种分布式文件系统存储方法和系统
JP2006018796A (ja) データ処理方法および装置並びにストレージ装置およびその処理プログラム
CN105867962A (zh) 系统升级的方法和装置
CN112463026A (zh) 分布式对象存储系统中追加数据的重复删除的方法和设备
CN107592118A (zh) 可变长编码文件的解码方法以及装置
CN115098447A (zh) 文件恢复方法、装置、电子设备及可读存储介质
CN101286886B (zh) 恢复网络设备配置信息的方法及装置
CN107220146B (zh) 一种文件扫描恢复方法及装置
CN109101644A (zh) 一种动静态日志文件扫描采集方法
CN105808586B (zh) 一种图片数据处理方法和装置
CN111708656A (zh) 基于懒加载机制的容器镜像拉取方法及系统
CN103093213A (zh) 视频文件分类方法及终端
CN102932513B (zh) 一种名片维护方法、装置及设备
CN113742786B (zh) 区块链中归档数据校验方法及装置
CN109241011B (zh) 一种虚拟机文件处理方法及装置
KR20110023580A (ko) 데이터를 복구하기 위한 방법 및 시스템

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
GR01 Patent grant
GR01 Patent grant