CN106997392B - Docker镜像缓存信息的处理方法、装置以及读取方法和装置 - Google Patents

Docker镜像缓存信息的处理方法、装置以及读取方法和装置 Download PDF

Info

Publication number
CN106997392B
CN106997392B CN201710229061.9A CN201710229061A CN106997392B CN 106997392 B CN106997392 B CN 106997392B CN 201710229061 A CN201710229061 A CN 201710229061A CN 106997392 B CN106997392 B CN 106997392B
Authority
CN
China
Prior art keywords
mirror image
cache information
mirror
group
cache
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.)
Active
Application number
CN201710229061.9A
Other languages
English (en)
Other versions
CN106997392A (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 Sohu New Media Information Technology Co Ltd
Original Assignee
Beijing Sohu New Media Information 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 Sohu New Media Information Technology Co Ltd filed Critical Beijing Sohu New Media Information Technology Co Ltd
Priority to CN201710229061.9A priority Critical patent/CN106997392B/zh
Publication of CN106997392A publication Critical patent/CN106997392A/zh
Application granted granted Critical
Publication of CN106997392B publication Critical patent/CN106997392B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种Docker镜像缓存信息的处理方法、装置以及读取方法和装置,该Docker镜像缓存信息处理方法包括:对镜像仓库中的镜像进行分组,生成以镜像名称为标识的包含有各个镜像的镜像标签及其缓存信息的镜像缓存信息,以及以镜像名称为标识的包含有镜像组缓存信息的镜像组缓存信息。基于本发明公开的方法,通过预先对镜像的缓存信息进行处理,为后续从镜像缓存信息和镜像组缓存信息中直接读取与镜像缓存请求对应的镜像缓存内容提供了基础,这就避免了冗余地查找、遍历以及计算过程,达到快速处理请求的目的。

Description

Docker镜像缓存信息的处理方法、装置以及读取方法和装置
技术领域
本发明涉及计算机技术领域,更具体地说,涉及一种Docker镜像缓存信息的处理方法、装置以及读取方法和装置。
背景技术
目前,Docker是当前最主流的开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,从而实现一次创建、任意运行的目的,其中,Linux是一种基于POSIX(Portable Operating SystemInterface,可移植操作系统接口)的操作系统)。
Docker的使用核心就是镜像,而镜像仓库作为镜像存储的后端在Docker的发展过程中起着举足轻重的作用。对于使用swift或者amazon s3等对象存储系统作为后端存储文件系统的镜像仓库,每当接收到一个http get api请求时,受限于对象存储的特点,就需要遍历整个存储文件系统查找相应的镜像缓存内容,这就会大大降低请求处理速度。
发明内容
有鉴于此,本发明提供一种Docker镜像缓存信息的处理方法、装置以及读取方法和装置,以解决对于使用对象存储系统作为后端存储文件系统的镜像仓库,每当接收到一个http get api请求时,受限于对象存储的特点,就需要遍历整个存储文件系统查找相应的镜像缓存内容,这就会大大降低请求处理速度的问题。技术方案如下:
一种Docker镜像缓存信息处理方法,包括:
遍历镜像仓库后端存储文件系统中的全部镜像,并按照镜像名称对各个所述镜像进行分组,得到至少一个镜像组,所述镜像组中各个所述镜像的镜像名称相同、镜像标签不同;
对于每一个所述镜像组,读取该镜像组内各个所述镜像的缓存信息,并生成以镜像名称为标识的镜像缓存信息,所述镜像缓存信息包含有该镜像组内各个所述镜像的镜像标签及其缓存信息;
对于每一个所述镜像组,根据相应所述镜像缓存信息内各个所述镜像的缓存信息,生成以镜像名称为标识的镜像组缓存信息,所述镜像组缓存信息包含有该镜像组的缓存信息。
优选的,还包括:
以第一预设缓存文件的形式将各个所述镜像缓存信息存储于所述存储文件系统中,并且,以第二预设缓存文件的形式将各个所述镜像组缓存信息存储于所述存储文件系统中。
优选的,还包括:
当检测到所述镜像仓库对所述存储文件系统完成镜像更新时,读取各个更新镜像的镜像名称、镜像标识及其缓存信息;
对于每一个所述更新镜像,根据所述更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新。
优选的,当所述更新镜像为添加镜像时,所述根据所述更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新,包括:
判断是否存在标识与所述添加镜像的镜像名称相同的第一镜像缓存信息以及第一镜像组缓存信息;
若是,将所述添加镜像的镜像标签及其缓存信息添加至所述第一镜像缓存信息中,以更新所述第一镜像缓存信息;
根据所述添加镜像的缓存信息对所述第一镜像组缓存信息进行更新;
若否,将所述添加镜像分为一个新镜像组;
生成以所述添加镜像的镜像名称为标识的新镜像缓存信息,所述新镜像缓存信息包含该添加镜像的镜像标签及其缓存信息;
生成以所述添加镜像的镜像名称为标识的新镜像组缓存信息,所述新镜像组缓存信息包含该添加镜像的缓存信息。
优选的,当所述更新镜像为删除镜像时,所述根据所述更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新,包括:
判断是否存在标识与所述删除镜像的镜像名称相同的第二镜像缓存信息以及第二镜像组缓存信息;
若是,判断所述第二镜像缓存信息中是否存在所述删除镜像的镜像标签;
当所述第二镜像缓存信息中存在所述删除镜像的镜像标签时,从所述第二镜像缓存信息中删除所述删除镜像的镜像标签以及对应的缓存信息,以更新所述第二镜像缓存信息;
根据所述删除镜像的缓存信息对所述第二镜像组缓存信息进行更新。
优选的,还包括:
当不存在标识与所述删除镜像的镜像名称相同的第二镜像缓存信息以及第二镜像组缓存信息,或者当所述第二镜像缓存信息中不存在所述删除镜像的镜像标签时,生成用于表征删除镜像缓存不存在的提示信息。
优选的,所述根据所述删除镜像的缓存信息对所述第二镜像组缓存信息进行更新,之后,还包括:
判断更新后的所述第二镜像缓存信息中是否存在除去所述删除镜像的镜像标签之外的其他镜像标签;
若否,删除所述第二镜像缓存信息以及所述第二镜像组缓存信息。
一种Docker镜像缓存信息处理装置,包括:遍历分组模块、读取生成模块和生成模块;
所述遍历分组模块,用于遍历镜像仓库后端存储文件系统中的全部镜像,并按照镜像名称对各个所述镜像进行分组,得到至少一个镜像组,所述镜像组中各个所述镜像的镜像名称相同、镜像标签不同;
所述读取生成模块,用于对于每一个所述镜像组,读取该镜像组内各个所述镜像的缓存信息,并生成以镜像名称为标识的镜像缓存信息,所述镜像缓存信息包含有该镜像组内各个所述镜像的镜像标签及其缓存信息;
所述生成模块,用于对于每一个所述镜像组,根据相应所述镜像缓存信息内各个所述镜像的缓存信息,生成以镜像名称为标识的镜像组缓存信息,所述镜像组缓存信息包含有该镜像组的缓存信息。
一种Docker镜像缓存信息读取方法,包括:
接收镜像缓存请求;
从预先生成的全部的镜像缓存信息以及镜像组缓存信息中,读取与所述镜像缓存请求对应的镜像缓存内容,所述镜像缓存信息以及所述镜像组缓存信息是按照上述技术方案任意一项所述的Docker镜像缓存信息处理方法生成的。
一种Docker镜像缓存信息读取装置,包括:请求接收模块和镜像缓存信息读取模块;
所述请求接收模块,用于接收镜像缓存请求;
所述镜像缓存信息读取模块,用于从预先生成的全部的镜像缓存信息以及镜像组缓存信息中,读取与所述镜像缓存请求对应的镜像缓存内容,所述镜像缓存信息以及所述镜像组缓存信息是按照上述技术方案任意一项所述的Docker镜像缓存信息处理方法生成的。
相较于现有技术,本发明实现的有益效果为:
以上本发明提供的一种Docker镜像缓存信息的处理方法、装置以及读取方法和装置,该Docker镜像缓存信息处理方法包括:对镜像仓库中的镜像进行分组,生成以镜像名称为标识的包含有各个镜像的镜像标签及其缓存信息的镜像缓存信息,以及以镜像名称为标识的包含有镜像组缓存信息的镜像组缓存信息。
基于本发明公开的方法,通过预先对镜像的缓存信息进行处理,为后续从镜像缓存信息和镜像组缓存信息中直接读取与镜像缓存请求对应的镜像缓存内容提供了基础,这就避免了冗余地查找、遍历以及计算过程,达到快速处理请求的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例一公开的一种Docker镜像缓存信息处理方法的方法流程图;
图2为本发明实施例二公开的一种Docker镜像缓存信息处理方法的方法流程图;
图3为本发明实施例二公开的一种Docker镜像缓存信息处理方法的部分方法流程图;
图4为本发明实施例二公开的一种Docker镜像缓存信息处理方法的另一部分方法流程图;
图5为本发明实施例二公开的一种Docker镜像缓存信息处理方法的再一部分方法流程图;
图6为本发明实施例三公开的一种Docker镜像缓存信息处理装置的结构示意图;
图7为本发明实施例四公开的一种Docker镜像缓存信息读取方法的方法流程图;
图8为本发明实施例五公开的一种Docker镜像缓存信息读取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一公开了一种Docker镜像缓存信息处理方法,该方法的方法流程图如图1所示,包括如下步骤:
S101,遍历镜像仓库后端存储文件系统中的全部镜像,并按照镜像名称对各个镜像进行分组,得到至少一个镜像组,所述镜像组中各个镜像的镜像名称相同、镜像标签不同;
在执行步骤S101的过程中,存储文件系统中的镜像对应存在唯一标识该镜像的镜像名字,镜像名字由镜像名称和镜像标签构成,当镜像仓库启动时,遍历镜像仓库后端存储文件系统中的全部镜像,获取各个镜像的镜像名字,对于遍历到的全部镜像按照镜像名称对进行分组,因此,每个镜像组内各个镜像的镜像名称相同,但是镜像标签不同;
本实施例中,存储文件系统可为swift或者amazon s3等对象存储系统,也可为本地存储系统,用户可根据实际需要具体设置,本实施例不做任何限定。
S102,对于每一个镜像组,读取该镜像组内各个镜像的缓存信息,并生成以镜像名称为标识的镜像缓存信息,所述镜像缓存信息包含有该镜像组内各个镜像的镜像标签及其缓存信息;
在执行步骤S102的过程中,对于每一个镜像组,读取该镜像组内各个镜像的缓存信息,该缓存信息包括但不局限于镜像大小、创建时间以及下载次数中的一个或多个,可根据实际需要具体设置缓存信息中包含的镜像内容,本实施例不做任何限定;生成包含有组内各个镜像的镜像标签及其缓存信息的镜像缓存信息,该镜像缓存信息以镜像名称为标识。
S103,对于每一个镜像组,根据相应镜像缓存信息内各个镜像的缓存信息,生成以镜像名称为标识的镜像组缓存信息,所述镜像组缓存信息包含有该镜像组的缓存信息;
在执行步骤S103的过程中,例如,对于镜像组A,组内3个镜像的镜像名称均为name1,镜像标签分别为tg1、tg2以及tg3,预先设置的镜像的缓存信息为创建时间和下载次数,假设镜像tg1的创建时间为2016.05.04、下载次数为1,镜像tg2的创建时间为2009.06.10、下载次数为15,镜像tg3的创建时间为2008.04.10、下载次数为0,则可比较镜像tg1、镜像tg2和镜像tg3的创建时间计算镜像组A的创建时间,选取最早的创建时间2008.04.10作为镜像组A的创建时间;可根据镜像tg1、镜像tg2和镜像tg3的下载次数计算镜像组A的下载次数—计算镜像组A内各镜像的下载次数总和16作为镜像组A的下载次数,进一步的,根据计算得到的镜像组A的创建时间以及下载次数生成镜像组A缓存信息,该镜像组A缓存信息以name1作为标识;
需要说明的是,上述步骤中仅以创建时间和下载次数作为缓存信息的具体示例,用户可根据时间需要具体设置。
优选的,本实施例公开的Docker镜像缓存信息处理方法,还可以第一预设缓存文件的形式将各个镜像缓存信息存储于存储文件系统中,以第二预设缓存文件的形式将各个镜像组缓存信息存储于存储文件系统中,可选的,第一预设缓存文件、第二预设缓存文件的表现形式可为文本、表格或者图片,用户可根据时候需要具体设置,在此不做任何限定。
本发明实施例公开的Docker镜像缓存信息处理方法,通过预先对镜像的缓存信息进行处理,为后续从镜像缓存信息和镜像组缓存信息中直接读取与镜像缓存请求对应的镜像缓存内容提供了基础,这就避免了冗余地查找、遍历以及计算过程,达到快速处理请求的目的。
实施例二
结合上述实施例一公开的Docker镜像缓存信息处理方法,本发明实施例二还提供一种Docker镜像缓存信息处理方法,方法流程图如图2所示,包括如下步骤:
S101,遍历镜像仓库后端存储文件系统中的全部镜像,并按照镜像名称对各个镜像进行分组,得到至少一个镜像组,所述镜像组中各个镜像的镜像名称相同、镜像标签不同;
S102,对于每一个镜像组,读取该镜像组内各个镜像的缓存信息,并生成以镜像名称为标识的镜像缓存信息,所述镜像缓存信息包含有该镜像组内各个镜像的镜像标签及其缓存信息;
S103,对于每一个镜像组,根据相应镜像缓存信息内各个镜像的缓存信息,生成以镜像名称为标识的镜像组缓存信息,所述镜像组缓存信息包含有该镜像组的缓存信息;
S104,当检测到镜像仓库对存储文件系统完成镜像更新时,读取各个更新镜像的镜像名称、镜像标识及其缓存信息;
在执行步骤S104的过程中,镜像仓库对存储文件系统进行的镜像更新操作可为push操作,即将镜像从本地推送到存储文件系统中进行存储,还可为delete操作,即将镜像从存储文件系统中删除,本申请实施例在此不做任何限定;在检测到镜像仓库对存储文件系统完成例如上述提及的push操作和/或delete操作时,读取存储文件系统中每一个更新镜像的镜像名称、镜像标识及其缓存信息。
S105,对于每一个更新镜像,根据更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新;
在执行步骤S105的过程中,检测到的镜像更新操作的类型不同,相应镜像缓存更新的结果也不同,比如,对于上述提及的push操作,由于是将镜像从本地推送到存储文件系统中,因此,存储文件系统中会增加镜像,增加的该镜像为添加镜像,又比如,对于上述提及的delete操作,由于是将镜像从存储文件系统中删除,因此,存储文件系统中会减少镜像,减少的该镜像为删除镜像;
具体的,当更新镜像为添加镜像时,步骤S105中根据更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新的具体执行过程,方法流程图如图3所示,包括如下步骤:
S1001,判断是否存在标识与添加镜像的镜像名称相同的第一镜像缓存信息以及第一镜像组缓存信息;若是,则执行步骤S1002;若否,则执行步骤S1004;
S1002,将添加镜像的镜像标签及其缓存信息添加至第一镜像缓存信息中,以更新第一镜像缓存信息;
S1003,根据添加镜像的缓存信息对第一镜像组缓存信息进行更新;
在执行步骤S1003的过程中,例如,添加镜像的镜像名称为name1、镜像标签为tg4,将该添加镜像tg4添加到上述步骤S103中提及的镜像组A中,因此,对于该镜像组A其中包含的4个镜像的镜像标签分别为tg1、tg2、tg3以及tg4;
假设添加镜像tg4的创建时间为2007.10.10,则可根据镜像tg1、镜像tg2、镜像tg3和添加镜像tg4的创建时间计算镜像组A的创建时间—选取创建时间最早的2007.10.10作为镜像组A的创建时间,还可通过比较目前镜像组A的创建时间和添加镜像tg4的创建时间,选取其中最早的创建时间作为该镜像组A的创建时间,具体实施方式可根据实际需要具体设置,本实施例不做任何限定;假设添加镜像tg4的下载次数为10,则可计算镜像tg1、镜像tg2、镜像tg3和添加镜像tg4的下载次数之和16作为镜像组A的下载次数,还可计算目前镜像组A的下载次数与添加镜像tg4的下载次数之和作为镜像组A的下载次数,具体实施方式可根据实际需要具体设置,本实施例不做任何限定。
S1004,将添加镜像分为一个新镜像组;
S1005,生成以添加镜像的镜像名称为标识的新镜像缓存信息,所述新镜像缓存信息包含该添加镜像的镜像标签及其缓存信息;
S1006,生成以所添加镜像的镜像名称为标识的新镜像组缓存信息,所述新镜像组缓存信息包含该添加镜像的缓存信息。
以上步骤S1001~步骤S1006仅仅是当更新镜像为添加镜像时,本申请实施例公开的“根据更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新”过程的一种优选的实现方式,有关此过程的具体实现方式可根据自身需求任意设置,在此不做限定。
具体的,当更新镜像为删除镜像时,步骤S105中根据更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新的具体执行过程,如图4所示,包括如下步骤:
S1007,判断是否存在标识与删除镜像的镜像名称相同的第二镜像缓存信息以及第二镜像组缓存信息;若是,则执行步骤S1008;
S1008,判断第二镜像缓存信息中是否存在删除镜像的镜像标签;当第二镜像缓存信息中存在删除镜像的镜像标签时,则执行步骤S1009;
S1009,从第二镜像缓存信息中删除删除镜像的镜像标签以及对应的缓存信息,以更新第二镜像缓存信息;
S1010,根据删除镜像的缓存信息对第二镜像组缓存信息进行更新。
可选的,步骤S105的具体执行过程还可包括如下步骤:
当不存在标识与删除镜像的镜像名称相同的第二镜像缓存信息以及第二镜像组缓存信息,或者当第二镜像缓存信息中不存在删除镜像的镜像标签时,生成用于表征删除镜像缓存不存在的提示信息;
提示装置接收该提示信息可以以预设形式进行提示;例如提示装置可以是提示灯,提示灯闪烁、点亮或变换显示颜色都可以表示删除镜像缓存不存在。
以上步骤S1007~步骤S1010仅仅是当更新镜像为删除镜像时,本申请实施例公开的“根据更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新”过程的一种优选的实现方式,有关此过程的具体实现方式可根据自身需求任意设置,在此不做限定。
可选的,步骤S1010之后,还可包括如下步骤,则当更新镜像为添加镜像时,步骤S105中根据更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新的具体执行过程,方法流程图如图5所示,还包括如下步骤:
S1011,判断更新后的第二镜像缓存信息中是否存在除去删除镜像的镜像标签之外的其他镜像标签;若否,则执行步骤S1012;
在执行步骤S1011的过程中,由于可能存在由一个镜像构成的镜像组,当将该镜像从存储文件系统中删除时,则此镜像组不存在,因此,为降低后续计算量,可对此镜像组的镜像缓存信息以及镜像组缓存信息进行删除。
S1012,删除第二镜像缓存信息以及第二镜像组缓存信息。
需要说明的是,当判断出更新后的第二镜像缓存信息中存在除去删除镜像的镜像标签之外的其他镜像标签时,不执行任何操作。
还需要说明的是,本实施例中步骤S101~步骤S103的实施方式与上述实施例一中所公开的步骤S101~步骤S103的实施方式一致,这里不再赘述,请参见本发明实施例一公开的部分。
本发明实施例公开的Docker镜像缓存信息处理方法,通过预先对镜像的缓存信息进行处理,为后续从镜像缓存信息和镜像组缓存信息中直接读取与镜像缓存请求对应的镜像缓存内容提供了基础,这就避免了冗余地查找、遍历以及计算过程,达到快速处理请求的目的,并且当镜像仓库对镜像更新时,可实时更新镜像缓存信息和镜像组缓存信息。
实施例三
基于上述实施例一和实施例二公开的Docker镜像缓存信息处理方法,本发明实施例三则对于提供执行上述方法的装置,Docker镜像缓存信息处理装置的结构示意图如图6所示,包括:遍历分组模块101、读取生成模块102和生成模块103;
遍历分组模块101,用于遍历镜像仓库后端存储文件系统中的全部镜像,并按照镜像名称对各个镜像进行分组,得到至少一个镜像组,所述镜像组中各个镜像的镜像名称相同、镜像标签不同;
读取生成模块102,用于对于每一个镜像组,读取该镜像组内各个镜像的缓存信息,并生成以镜像名称为标识的镜像缓存信息,所述镜像缓存信息包含有该镜像组内各个镜像的镜像标签及其缓存信息;
生成模块103,用于对于每一个镜像组,根据相应镜像缓存信息内各个镜像的缓存信息,生成以镜像名称为标识的镜像组缓存信息,所述镜像组缓存信息包含有该镜像组的缓存信息。
本发明实施例公开的Docker镜像缓存信息处理装置,通过预先对镜像的缓存信息进行处理,为后续从镜像缓存信息和镜像组缓存信息中直接读取与镜像缓存请求对应的镜像缓存内容提供了基础,这就避免了冗余地查找、遍历以及计算过程,达到快速处理请求的目的。
实施例四
基于上述实施例一和实施例二公开的Docker镜像缓存信息处理方法,实施例三公开的Docker镜像缓存信息处理装置,本发明实施例四则提供一种Docker镜像缓存信息读取方法,方法流程图如图7所示,包括如下步骤:
S201,接收镜像缓存请求;
在执行步骤S201的过程中,镜像缓存请求可为用于获取镜像仓库中所有镜像名字的catalog镜像缓存请求,也可为用于获取特定镜像名称下所有镜像标签的tag镜像缓存请求,本实施例不做任何限定。
S202,从预先生成的全部的镜像缓存信息以及镜像组缓存信息中,读取与镜像缓存请求对应的镜像缓存内容,所述镜像缓存信息以及所述镜像组缓存信息是上述技术方案任意一项所述的Docker镜像缓存信息处理方法生成的。
本发明实施例公开的Docker镜像缓存信息读取方法,通过从镜像缓存信息和镜像组缓存信息中直接读取与镜像缓存请求对应的镜像缓存内容,避免了冗余地查找、遍历以及计算过程,达到快速处理请求的目的。
实施例五
结合上述实施例四公开的Docker镜像缓存信息读取方法,本发明实施例五则对应提供执行上述Docker镜像缓存信息读取方法的装置,Docker镜像缓存信息读取装置的结构示意图如图8所示,包括:请求接收模块201和镜像缓存信息读取模块202;
请求接收模块201,用于接收镜像缓存请求;
镜像缓存信息读取模块202,用于从预先生成的全部的镜像缓存信息以及镜像组缓存信息中,读取与镜像缓存请求对应的镜像缓存内容,所述镜像缓存信息以及所述镜像组缓存信息是按照上述技术方案任意一项所述的Docker镜像缓存信息处理方法生成的。
本发明实施例公开的Docker镜像缓存信息读取装置,通过从镜像缓存信息和镜像组缓存信息中直接读取与镜像缓存请求对应的镜像缓存内容,避免了冗余地查找、遍历以及计算过程,达到快速处理请求的目的。
以上对本发明所提供的一种Docker镜像缓存信息的处理方法、装置以及读取方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种Docker镜像缓存信息处理方法,其特征在于,包括:
遍历镜像仓库后端存储文件系统中的全部镜像,并按照镜像名称对各个所述镜像进行分组,得到至少一个镜像组,所述镜像组中各个所述镜像的镜像名称相同、镜像标签不同;
对于每一个所述镜像组,读取该镜像组内各个所述镜像的缓存信息,并生成以镜像名称为标识的镜像缓存信息,所述镜像缓存信息包含有该镜像组内各个所述镜像的镜像标签及其缓存信息;
对于每一个所述镜像组,处理相应所述镜像缓存信息内各个所述镜像的缓存信息得到以镜像名称为标识的镜像组缓存信息,所述镜像组缓存信息用于表示该镜像组的镜像内容。
2.根据权利要求1所述的方法,其特征在于,还包括:
以第一预设缓存文件的形式将各个所述镜像缓存信息存储于所述存储文件系统中,并且,以第二预设缓存文件的形式将各个所述镜像组缓存信息存储于所述存储文件系统中。
3.根据权利要求1所述的方法,其特征在于,还包括:
当检测到所述镜像仓库对所述存储文件系统完成镜像更新时,读取各个更新镜像的镜像名称、镜像标识及其缓存信息;
对于每一个所述更新镜像,根据所述更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新。
4.根据权利要求3所述的方法,其特征在于,当所述更新镜像为添加镜像时,所述根据所述更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新,包括:
判断是否存在标识与所述添加镜像的镜像名称相同的第一镜像缓存信息以及第一镜像组缓存信息;
若是,将所述添加镜像的镜像标签及其缓存信息添加至所述第一镜像缓存信息中,以更新所述第一镜像缓存信息;
根据所述添加镜像的缓存信息对所述第一镜像组缓存信息进行更新;
若否,将所述添加镜像分为一个新镜像组;
生成以所述添加镜像的镜像名称为标识的新镜像缓存信息,所述新镜像缓存信息包含该添加镜像的镜像标签及其缓存信息;
生成以所述添加镜像的镜像名称为标识的新镜像组缓存信息,所述新镜像组缓存信息包含该添加镜像的缓存信息。
5.根据权利要求4所述的方法,其特征在于,当所述更新镜像为删除镜像时,所述根据所述更新镜像的镜像名称、镜像标签及其缓存信息对镜像缓存进行更新,包括:
判断是否存在标识与所述删除镜像的镜像名称相同的第二镜像缓存信息以及第二镜像组缓存信息;
若是,判断所述第二镜像缓存信息中是否存在所述删除镜像的镜像标签;
当所述第二镜像缓存信息中存在所述删除镜像的镜像标签时,从所述第二镜像缓存信息中删除所述删除镜像的镜像标签以及对应的缓存信息,以更新所述第二镜像缓存信息;
根据所述删除镜像的缓存信息对所述第二镜像组缓存信息进行更新。
6.根据权利要求5所述的方法,其特征在于,还包括:
当不存在标识与所述删除镜像的镜像名称相同的第二镜像缓存信息以及第二镜像组缓存信息,或者当所述第二镜像缓存信息中不存在所述删除镜像的镜像标签时,生成用于表征删除镜像缓存不存在的提示信息。
7.根据权利要求5所述的方法,其特征在于,所述根据所述删除镜像的缓存信息对所述第二镜像组缓存信息进行更新,之后,还包括:
判断更新后的所述第二镜像缓存信息中是否存在除去所述删除镜像的镜像标签之外的其他镜像标签;
若否,删除所述第二镜像缓存信息以及所述第二镜像组缓存信息。
8.一种Docker镜像缓存信息处理装置,其特征在于,包括:遍历分组模块、读取生成模块和生成模块;
所述遍历分组模块,用于遍历镜像仓库后端存储文件系统中的全部镜像,并按照镜像名称对各个所述镜像进行分组,得到至少一个镜像组,所述镜像组中各个所述镜像的镜像名称相同、镜像标签不同;
所述读取生成模块,用于对于每一个所述镜像组,读取该镜像组内各个所述镜像的缓存信息,并生成以镜像名称为标识的镜像缓存信息,所述镜像缓存信息包含有该镜像组内各个所述镜像的镜像标签及其缓存信息;
所述生成模块,用于对于每一个所述镜像组,处理相应所述镜像缓存信息内各个所述镜像的缓存信息得到以镜像名称为标识的镜像组缓存信息,所述镜像组缓存信息用于表示该镜像组的镜像内容。
9.一种Docker镜像缓存信息读取方法,其特征在于,包括:
接收镜像缓存请求;
从预先生成的全部的镜像缓存信息以及镜像组缓存信息中,读取与所述镜像缓存请求对应的镜像缓存内容,所述镜像缓存信息以及所述镜像组缓存信息是按照权利要求1~7任意一项所述的Docker镜像缓存信息处理方法生成的。
10.一种Docker镜像缓存信息读取装置,其特征在于,包括:请求接收模块和镜像缓存信息读取模块;
所述请求接收模块,用于接收镜像缓存请求;
所述镜像缓存信息读取模块,用于从预先生成的全部的镜像缓存信息以及镜像组缓存信息中,读取与所述镜像缓存请求对应的镜像缓存内容,所述镜像缓存信息以及所述镜像组缓存信息是按照权利要求1~7任意一项所述的Docker镜像缓存信息处理方法生成的。
CN201710229061.9A 2017-04-10 2017-04-10 Docker镜像缓存信息的处理方法、装置以及读取方法和装置 Active CN106997392B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710229061.9A CN106997392B (zh) 2017-04-10 2017-04-10 Docker镜像缓存信息的处理方法、装置以及读取方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710229061.9A CN106997392B (zh) 2017-04-10 2017-04-10 Docker镜像缓存信息的处理方法、装置以及读取方法和装置

Publications (2)

Publication Number Publication Date
CN106997392A CN106997392A (zh) 2017-08-01
CN106997392B true CN106997392B (zh) 2020-03-03

Family

ID=59434986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710229061.9A Active CN106997392B (zh) 2017-04-10 2017-04-10 Docker镜像缓存信息的处理方法、装置以及读取方法和装置

Country Status (1)

Country Link
CN (1) CN106997392B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228842B (zh) * 2018-01-08 2020-09-25 平安科技(深圳)有限公司 Docker镜像库文件存储方法、终端、设备以及存储介质
CN108958881A (zh) * 2018-05-31 2018-12-07 平安科技(深圳)有限公司 数据处理方法、装置及计算机可读存储介质
CN109343859A (zh) * 2018-08-17 2019-02-15 咪咕文化科技有限公司 一种信息处理方法、装置及存储介质
CN111209082B (zh) * 2020-01-06 2023-04-07 暨南大学 一种基于关联度的Docker容器注册表预取方法
CN111522627B (zh) * 2020-04-26 2023-11-28 杭州威佩网络科技有限公司 一种Docker镜像管理方法、装置、设备及介质
CN111752676B (zh) * 2020-05-28 2022-06-21 苏州浪潮智能科技有限公司 一种基于Docker的同名镜像清除方法、系统、终端及存储介质
WO2021237645A1 (zh) * 2020-05-29 2021-12-02 深圳市欢太科技有限公司 镜像更新方法、装置、电子设备以及存储介质
CN112527467A (zh) * 2020-12-23 2021-03-19 同盾控股有限公司 容器镜像的存储结构、查询方法、删除方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102932415A (zh) * 2012-09-26 2013-02-13 东软集团股份有限公司 一种镜像文件存储方法及装置
CN105656794A (zh) * 2014-11-14 2016-06-08 腾讯科技(深圳)有限公司 数据分发方法及装置
CN105740048A (zh) * 2016-01-26 2016-07-06 华为技术有限公司 一种镜像管理方法、装置及系统
CN106412126A (zh) * 2016-12-05 2017-02-15 深圳中兴网信科技有限公司 Docker镜像描述信息的展示方法及展示装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033755A (zh) * 2009-09-30 2011-04-27 国际商业机器公司 用于运行虚拟机镜像的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102932415A (zh) * 2012-09-26 2013-02-13 东软集团股份有限公司 一种镜像文件存储方法及装置
CN105656794A (zh) * 2014-11-14 2016-06-08 腾讯科技(深圳)有限公司 数据分发方法及装置
CN105740048A (zh) * 2016-01-26 2016-07-06 华为技术有限公司 一种镜像管理方法、装置及系统
CN106412126A (zh) * 2016-12-05 2017-02-15 深圳中兴网信科技有限公司 Docker镜像描述信息的展示方法及展示装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种基于聚类分组的虚拟机镜像去冗余方法;徐继伟 等;《软件学报》;20151116;第27卷(第2期);第466-480页 *
基于Docker容器的Web集群设计与实现;刘熙等;《电子设计工程》;20160517;第24卷(第8期);第117-119页 *

Also Published As

Publication number Publication date
CN106997392A (zh) 2017-08-01

Similar Documents

Publication Publication Date Title
CN106997392B (zh) Docker镜像缓存信息的处理方法、装置以及读取方法和装置
CN109145205B (zh) 一种基于区块链的跨链数据操作方法和装置
CN104471532B (zh) 用户设备及其方法
CN106126630B (zh) 一种业务对象的收藏、搜索方法和装置
JP5986312B2 (ja) アプリケーション互換性の評価
CN110083334B (zh) 模型上线的方法及装置
JP5925915B2 (ja) 商品を追跡しかつ商品情報を提供する方法及び装置
CN105659209B (zh) 在客户端设备上托管的云服务
CN110851209B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN101425922A (zh) 跟踪和定位web服务更新过程中的改变的方法和装置
CN104919444A (zh) 主题集合
CN107077345A (zh) 用于在当前应用中插入内容的个性化上下文菜单
CN114064594B (zh) 数据处理方法和装置
US11328021B2 (en) Automatic resource management for build systems
CN110365776B (zh) 图片批量下载方法、装置、电子设备及存储介质
Currier Protocol buffers
CN110352410A (zh) 跟踪索引节点的访问模式以及预提取索引节点
CN113688139A (zh) 对象存储方法、网关、设备及介质
CN113157477B (zh) 内存泄漏的归因方法、装置、电子设备和存储介质
CN112115063B (zh) 一种软件本地化测试方法、装置、终端及存储介质
WO2019041891A1 (zh) 升级包的生成方法及装置
CN109582347B (zh) 一种获取前端代码的方法及装置
CN106528069A (zh) Sdk集成方法和装置
CN115098062A (zh) 一种代码生成方法及装置
CN114691610A (zh) 目录的处理方法和装置、存储介质及处理器

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