CN109725980A - 生成镜像标签的方法、设备以及计算机可读介质 - Google Patents

生成镜像标签的方法、设备以及计算机可读介质 Download PDF

Info

Publication number
CN109725980A
CN109725980A CN201711022188.XA CN201711022188A CN109725980A CN 109725980 A CN109725980 A CN 109725980A CN 201711022188 A CN201711022188 A CN 201711022188A CN 109725980 A CN109725980 A CN 109725980A
Authority
CN
China
Prior art keywords
mirror image
similarity
label
index value
content
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
CN201711022188.XA
Other languages
English (en)
Other versions
CN109725980B (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201711022188.XA priority Critical patent/CN109725980B/zh
Priority to US16/172,158 priority patent/US10909415B2/en
Publication of CN109725980A publication Critical patent/CN109725980A/zh
Application granted granted Critical
Publication of CN109725980B publication Critical patent/CN109725980B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures

Abstract

本公开的实施例涉及生成镜像标签的方法、设备以及计算机可读介质。根据本公开的实施例,可以基于镜像的内容来确定该镜像的索引值,并且根据多个的镜像的索引值来确定多个镜像之间的相似度,从而为镜像生成标签。根据本公开的实施例,还可以基于镜像的相似度,对镜像进行分组。

Description

生成镜像标签的方法、设备以及计算机可读介质
技术领域
本公开的实施例总体涉及镜像管理,并且更具体地,涉及生成镜像标签的方法、设备以及计算机可读介质。
背景技术
在目前的云计算环境,尤其是平台即服务(PaaS)的环境下,容器技术(Docker)得到了广泛的应用。越来越多的服务以容器的形式被创建、调度和部署。由于容器的层结构以及在容器运行期间作为微服务松耦合互连,可以快速地、灵活地创建服务。特别地,Docker技术在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得Docker术比虚拟机技术更为轻便、快捷。
随着越来越多的开发者和用户在PaaS平台中创建、调度以及分享容器镜像,在容器技术中出现了新的待解决的问题。
发明内容
本公开的实施例提供了对镜像的管理方法、设备和相应的计算机程序产品。
根据本公开的第一方面,提供了一种用于生成镜像标签的方法。该方法包括:基于第一镜像来确定第一组索引值,第一组索引值中的每个索引值指示第一镜像的多个层中的每个层的内容;基于第二镜像来确定第二组索引值,第二组索引值中的每个索引值指示第二镜像的多个层中的每个层的内容;基于第一组索引值和第二组索引值,确定所述第一镜像与所述第二镜像之间的相似度;以及基于所述相似度,生成与第一镜像和第二镜像中的至少一个相关联的标签。
根据本公开的第二方面,提供了一种用于生成镜像标签的设备。该设备包括:至少一个处理器;以及与至少一个处理器耦合的存储器,存储器具有存储于其中的指令,指令在被至少一个处理器执行时使得电子设备执行动作,动作包括:基于第一镜像来确定第一组索引值,第一组索引值中的每个索引值指示第一镜像的多个层中的每个层的内容;基于第二镜像来确定第二组索引值,第二组索引值中的每个索引值指示第二镜像的多个层中的每个层的内容;基于第一组索引值和第二组索引值,确定所述第一镜像与所述第二镜像之间的相似度;以及基于所述相似度,生成与第一镜像和第二镜像中的至少一个相关联的标签。
根据本公开的第三方面,提供了一种计算机可读介质。该计算机可读介质上存储有指令,当指令在被机器的至少一个处理单元执行时,使得机器实现根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的设备的示意框图;
图2示出了根据本公开的实施例的系统结构的示意框图;
图3示出了根据本公开的实施例的镜像的结构的示意图;
图4示出了根据本公开的实施例的协议选择的过程或方法的流程图;
图5示出了根据本公开的实施例的确定镜像相似度的示意框图;
图6示出了根据本公开的实施例的确定镜像分组的示意框图;以及
图7示出了根据本公开的实施例的设备的示意框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
在本文中使用的术语“镜像(Image)”是指一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。
因为镜像包含操作系统完整的根(Root)文件系统,其体积往往是庞大的,因此在Docker设计时,就充分利用联合文件系统(Union FS)的技术,将其设计为分层存储的架构。所以严格来说,镜像并非是像一个国际标准光盘文件系统格式那样的打包文件,镜像只是一个虚拟的概念,其实际体现并非由一个文件组成,而是由一组文件系统组成,或者说,由多层文件系统联合组成。
镜像构建时,会逐层构建,前一层是后一层的基础。每一层构建完就不会再发生改变,后一层上的任何改变只发生在自己这一层。比如,删除前一层文件的操作,实际不是真的删除前一层的文件,而是仅在当前层标记为该文件已删除。在最终容器运行的时候,虽然不会看到这个文件,但是实际上该文件会一直跟随镜像。因此,在构建镜像的时候,需要额外小心,每一层尽量只包含该层需要添加的东西,任何额外的东西应该在该层构建结束前清理掉。
分层存储的特征还使得镜像的复用、定制变的更为容易。甚至可以用之前构建好的镜像作为基础层,然后进一步添加新的层,以定制自己所需的内容,构建新的镜像。
如上所述,诸如Docker的容器技术得到了越来越广泛的应用。通常,用户可以上传新的镜像或者从现有的镜像中创建一个镜像,同时用户自己向该镜像添加标签以描述该镜像。由用户创建或上传的镜像可以存储在本地的存储设备中或者分布式的存储设备中。其他的用户可以通过输入关键字在存储设备中搜索镜像。然而,在现有的方案中存在着一些问题。
例如,镜像的内容是基于由用户创建的标签而确定的,因此存在标签内容与镜像实际的内容不相符的情况。此外,也没有可以定量地确定镜像之间的内容相似度的方法。
为了至少部分地解决上述以及其他潜在的问题和缺陷,本公开的实施例提供了一种用于生成镜像标签的方法。
图1示出了适合于用来实现本公开实施例的设备100的示意性框图。可以理解,设备100可以实现在服务器处,也可以实现在云服务器平台。如图所示,设备100包括处理单元110、存储设备120、输入设备130以及输出设备140。处理单元110可以根据存储在存储设备120中的计算机程序指令122,来执行各种适当的动作和处理。可以理解,设备100还可以包括其他任意适合的设备。
具体来说,处理单元110可以对从输入设备130接收的镜像或存储在存储设备120中的镜像进行关于内容的相似度的比较,从而生成标签。存储设备120可以存储镜像、由处理单元110生成的标签以及镜像的分组。
图2示出了根据本公开的某些实施例的系统200的示意框图。系统200是如图1所示的设备100的示例。在该示例中,系统200包括处理单元110以及存储设备120。处理单元110可以包括:标签生成模块210以及推荐模块240。存储设备120可以包括:镜像存储库220以及标签和元数据存储库230。
标签生成模块210可以被配置为基于接收到的镜像的内容来生成标签。镜像存储库220可以被配置为存储系统中的镜像。标签和元数据存储库230可以被配置为存储镜像的标签以及与镜像的分组有关的元数据。推荐模块240被配置为基于用户输入的关键词从镜像的分组中搜索匹配的结果。注意,图2示出的系统200仅为示例性的,而非限制性的。可以理解,系统200可以包括任意适合的模块,例如控制面板模块等。
图3示出了根据本公开的实施例的镜像的结构的示意图。注意,图3仅示例性地示出了第一镜像310-1和第二镜像310-2的结构。如上所述,镜像是被逐层构建的。在图3的示例中,第一镜像310-1包括层3100-1、层3100-2、层3100-3....层3100-N(统称为层3100,其中N为大于1的自然数)。第二镜像310-2包括层3200-1、层3200-2、层3200-3、层3204....层3200-M(统称为层3200,其中M为大于1的自然数)。可以理解,第一镜像310-1和第二镜像310-2的层数仅为示例性的,而非限制性的。
图4示出了根据本公开的实施例的镜像标签生成的方法400的流程图。方法400可以在图1所示的设备100中被实施。现在结合图3对图4的方法进行描述。
在框410,设备100基于第一镜像310-1来确定第一组索引值,第一组索引值中的每个值指示第一镜像的多个层3100中的每个层的内容。在某些实施例中,第一镜像310-1可以被预先存储在本地的镜像存储库220中。在另一些实施例中,第一镜像310-1可以经由接收设备130被接收。在其他的实施例中,第一镜像310-1可以被存储在由设备100可访问的存储库中。在某些实施例中,设备100可以将确定的第一组索引值存储在存储设备120中或者远程可访问的存储设备中。
在框420,设备100基于第二镜像310-2来确定第二组索引值,第二组索引值中的每个值指示第二镜像的多个层3200中的每个层的内容。在某些实施例中,第二镜像310-2可以被预先存储在本地的镜像存储库220中。在另一些实施例中,第二镜像310-2可以经由接收设备130被接收。在其他的实施例中,第二镜像310-2可以被存储在由设备100可访问的存储库中。在某些实施例中,设备100可以将确定的第二组索引值存储在存储设备120中或者远程可访问的存储设备中。
在示例实施例中,设备100可以获得第一镜像310-1的每个层3100和第二镜像310-2的每个层3200的内容,并且针对每个层的内容确定一个索引值。仅作为示例,设备100可以获得第一镜像310-1和第二镜像310-2的每个层的字符串的值,并且对每个层的字符串的值进行哈希运算从而确定该层的索引值。在某些实施例中,设备100也可以利用第一镜像310-1和第二镜像310-2的每个层的标识来确定索引值。
在另一示例性实施例中,第一镜像310-1的索引值可以被存储在存储设备120中,设备100可以从存储设备120中获得第一镜像310-1的第一组索引值。
在框430,设备100基于第一组索引值和第二组索引值来确定第一镜像310-1和第二镜像310-2之间的相似度。
在示例实施例中,设备100将第一组值中的至少一个值第二组值中的一组候选值分别进行比较来获得一组相似度。仅作为示例,设备100可以计算第一组值中的至少一个值与第二组值中的一组候选值之间的汉明(Hamming)距离来获得一组相似度。在另一实施例中,设备100可以计算第一组值中的至少一个值与第二组值中的一组候选值之间的编辑距离来获得一组相似度。设备100还可以通过计算欧几里得距离来获得该组相似度。设备100也可以通过计算莱温斯坦(Levenshtein)距离来获得该组相似度。可以理解,设备100可以通过除上述以外的任意适合的方法(例如,李(Lee)距离,夹角余弦值)来将第一组值中的至少一个值第二组值中的一组候选值分别进行比较以获得一组相似度。本公开的实施例在此方面不受限制。
图5示出了根据本公开的实施例的确定镜像相似度的示意框图。仅为了说明之目的,本文中以计算汉明距离来获得该组相似度为例。在图5所示的示例中,设备100可以通过计算第一镜像310-1的层3100-1的索引值与第二镜像310-2的层3200-1的索引值之间的汉明距离来确定层3100-1与层3200-1之间的相似度,记为s11。类似地,设备100可以确定层3100-1与层3200-2之间的相似度s12,层3100-2与层3200-1之间的相似度s21,层3100-2与层3200-2之间的相似度s22,层3100-3与层3200-3之间的相似度s33,以及层3100-3与层3200-4之间的相似度,记为s34。因此,设备100可以获得一组相似度{s11,s12,s21,s22,s33,s34}。
可以理解,图5示出的实施例仅为示例性的,而非限制性的。在某些实施例中,设备100也可以仅确定第一镜像310-1与第二镜像310-2的对应的层之间的相似度。在另一些实施例中,设备100可以确定第一镜像310-1的任意层与第二镜像310-2的所有层之间的相似度。在又一实施例中,设备100可以确定第一镜像310-1的任意数目的层与第二镜像310-2的任意数目的层之间的相似度。
在该示例实施例中,设备100基于一组相似度获得第一镜像310-1和第二镜像310-2之间的相似度。仅为作为示例,如上所述,设备100获得了一组相似度{s11,s12,s21,s22,s33,s34}。设备100可以通过下述公式(1)来确定第一镜像310-1和第二镜像310-2之间的相似度。
其中,Sim表示两个镜像之间的相似度,n表示一组相似度中相似度的数目,sm,p表示两个镜像中的一个镜像的第m层与另一个镜像的第p层层之间的相似度,其中m,n和p为大于0的自然数。例如,s1,1表示一个镜像的第一层与另一镜像的第一层之间的相似度,s1,2表示一个镜像的第一层与另一镜像的第二层之间的相似度。
可以理解,还可以利用其他的方式来确定第一镜像310-1和第二镜像310-2之间的相似度。例如,可以通过确定该组相似度的平均值来确定第一镜像310-1和第二镜像310-2之间的相似度。
在示例性实施例中,设备100可以将第一镜像310-1和第二镜像310-2之间的相似度存储在存储设备120中。设备100也可以将第一镜像310-1和第二镜像310-2之间的相似度存储在远程可访问的存储设备中。
以此方式,可以基于镜像内容来确定镜像之间的相似度,从而有助于镜像分组以及生成内容标签。
在框440,设备100基于相似度来生成与第一镜像310-1和第二镜像310-2中的至少一个相关联的标签。仅作为示例,在一个实施例中,如果第一镜像310-1的内容为已知的,设备100可以确定指示第一镜像310-1的内容的标签。换而言之,设备100将内容已知的第一镜像310-1确定为可信任镜像。如果第二镜像310-2与第一镜像310-1的相似度超过了预定的值,则设备100可以将第一镜像310-1的标签分配给第二镜像310-2。
在某些实施例中,第二镜像310-2可以与多个可信任镜像之间的相似度超过预定的值,则设备100可以将上述多个可信任的镜像的标签分配给第二镜像310-2。该预定的值可以被预先配置给设备100。设备100也可以动态地确定该预定的值。
以此方式,设备100可以为镜像生成基于内容的标签,并且该标签是可信任的。因此,可以确定指示镜像实际的内容的标签,而不是镜像的创建者所添加的标签。
在某些实施例中,如果第一镜像310-1和第二镜像310-2之间的相似度高于第一相似度阈值,设备100将第一镜像310-1和第二镜像310-2存储在相同的分组中。图6示出了根据本公开的实施例的确定镜像分组的示意框图。可以理解,图6中示出的镜像的数目仅为示例性的。仅作为示例,在某些实施例中,设备100确定第一镜像310-1和第二镜像310-2之间的相似度,记为Sim1,2。类似地,设备100可以确定第一镜像310-1和第三镜像310-3之间的相似度Sim1,3,第一镜像310-1和第三镜像310-3之间的相似度Sim1,3,第一镜像310-1和第四镜像310-4之间的相似度Sim1,4,第一镜像310-1和第五镜像310-5之间的相似度Sim1,5,以及第一镜像310-1和第六镜像310-6之间的相似度Sim1,6
仅作为示例,设备100可以确定第一镜像310-1、第二镜像310-2以及第六镜像310-6之间的相似度高于预定的值并且将第一镜像310-1、第二镜像310-2以及第六镜像310-6存在相同的分组中。该预定的值可以被预先配置给设备100。设备100也可以动态地确定该预定的值。在某些实施例中,第一镜像310-1、第二镜像310-2以及第六镜像310-6可以以矩阵的形式被存储在存储设备120中或远程可访问的存储设备中。在其他示例性实施例中,第一镜像310-1、第二镜像310-2以及第六镜像310-6可以以表格的形式被存储在存储设备120中或远程可访问的存储设备中。可以理解,镜像的分组可以任意适合的方式被存储,并且每个分组中的镜像的数目是任意的。以方式,设备100可以生成包括镜像间的相似度的数据库,从而有助于镜像的管理和搜索。
在另一实施例中,如果第一镜像310-1与第二镜像310-2之间的相似度超过预定的值,设备100将为第一镜像310-1和第二镜像310-2分别分配相同的标签,并且第一镜像310-1和第二镜像310-2存储在相同的分组中。该预定的值可以被预先配置给设备100。设备100也可以动态地确定该预定的值。作为示例,第一镜像310-1和第二镜像310-2可以以矩阵的形式被存储,也可以以表格的形式或其他适当形式被存储。
在某些实施例中,设备100确定镜像的分组中特定标签的数目超过特定的值,则为该分组中的每个镜像分配该标签。仅作为示例,设备100确定第一镜像310-1、第二镜像310-2以及第六镜像310-6的分组中第一镜像310-1和第二镜像310-2具有“数据库”的标签,则设备100为第六镜像310-6分配“数据库”的标签。
在某些实施例中,如上所述,存在一些可信任的镜像,则设备100可以将这些可信任的镜像的标签分配给其所在分组中的所有的镜像。
在示例实施例中,设备100经由输入设备130接收到新的第七镜像310-7,设备100可以将第七镜像310-7与可信任的镜像进行相似度的比较,从而确定第七镜像310-7的标签。在其他的实施例中,设备100还可以基于第七镜像310-7与先前的镜像之间的相似度,确定第七镜像310-7所属的分组,并将其存储在该分组中。
以此方式,如果用户输入关键词进行镜像搜索,设备100可以将该关键词与所存储的标签进行比较,并且确定具有匹配该关键词的标签的镜像分组作为候选结果。设备100还可以根据诸如历史下载次数、用户评分等进一步优化候选结果。
图7示出了适合于用来实现本公开实施例的电子设备700的示意性框图。可以理解,电子设备700可以实现在图1所示的客户端110,电子设备700也可以实现在图1所示的服务器120.如图所示,设备700包括中央处理单元(CPU)710,其可以根据存储在只读存储器(ROM)720中的计算机程序指令或者从存储单元780加载到随机访问存储器(RAM)730中的计算机程序指令,来执行各种适当的动作和处理。在RAM 730中,还可存储设备700操作所需的各种程序和数据。CPU710、ROM 720以及RAM 730通过总线710彼此相连。输入/输出(I/O)接口750也连接至总线740。
设备700中的多个部件连接至I/O接口750,包括:输入单元760,例如键盘、鼠标等;输出单元770,例如各种类型的显示器、扬声器等;存储单元780,例如磁盘、光盘等;以及通信单元790,例如网卡、调制解调器、无线通信收发机等。通信单元790允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程200、300、和400,可由处理单元710执行。例如,在一些实施例中,过程/方法200、300和400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元780。在一些实施例中,计算机程序的部分或者全部可以经由ROM 720和/或通信单元790而被载入和/或安装到设备700上。当计算机程序被加载到RAM 730并由CPU 710执行时,可以执行上文描述的方法200、300和400的一个或多个步骤。备选地,在其他实施例中,CPU 710也可以以其他任何适当的方式被配置以实现上述过程。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (15)

1.一种用于生成镜像标签的方法,包括:
基于第一镜像来确定第一组索引值,所述第一组索引值中的每个索引值指示所述第一镜像的多个层中的每个层的内容;
基于第二镜像来确定第二组索引值,所述第二组索引值中的每个索引值指示所述第二镜像的多个层中的每个层的内容;
基于所述第一组索引值和所述第二组索引值,确定所述第一镜像与所述第二镜像之间的相似度;以及
基于所述相似度,生成与所述第一镜像和所述第二镜像中的至少一个相关联的标签。
2.根据权利要求1所述的方法,其中确定所述第一组索引值包括:
获取所述第一镜像的所述每个层的内容;以及
针对所述每个层的内容,确定一个索引值。
3.根据权利要求1所述的方法,其中确定所述第一镜像与所述第二镜像之间的相似度包括:
通过将所述第一组值中的至少一个值与所述第二组中的一组候选值分别进行比较,获得一组相似度;以及
基于所述一组相似度,确定所述第一镜像与所述第二镜像之间的相似度。
4.根据权利要求1所述的方法,其中确定所述第一镜像与所述第二镜像之间的相似度包括:
基于以下中的至少一项来确定所述第一镜像和所述第二镜像的内容之间的相似度:
汉明距离,
编辑距离,
欧几里得距离,以及
夹角余弦值。
5.根据权利要求1所述的方法,其中生成与所述第一镜像和所述第二镜像中的至少一个相关联的标签包括:
响应于所述第一镜像与所述第二镜像之间的相似度高于第一相似度阈值,为所述第一镜像和所述第二镜像分别分配第一标签;以及
将所述第一镜像与所述第二镜像存储在相同的分组中。
6.根据权利要求5所述的方法,还包括:
确定所述分组中的具有所述第一标签的镜像的数目;以及
响应于所述具有所述第一标签的镜像的数目超过数目阈值,为所述分组中的所有镜像分配所述第一标签。
7.根据权利要求1所述的方法,其中生成与所述第一镜像和所述第二镜像中的至少一个相关联的标签包括:
响应于所述第一镜像的内容为已知的,确定指示所述第一镜像的内容的第二标签;
响应于所述第二镜像与所述第一镜像的内容之间的相似度超过第二相似度阈值,为所述第二镜像分配所述第二标签。
8.一种用于生成镜像标签的设备,包括:
至少一个处理器;以及
与所述至少一个处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述至少一个处理器执行时使得所述第一设备执行动作,所述动作包括:
基于第一镜像来确定第一组索引值,所述第一组索引值中的每个索引值指示所述第一镜像的多个层中的每个层的内容;
基于第二镜像来确定第二组索引值,所述第二组索引值中的每个索引值指示所述第二镜像的多个层中的每个层的内容;基于所述第一组索引值和所述第二组索引值,确定所述第一镜像与所述第二镜像之间的相似度;以及
基于所述相似度,生成与所述第一镜像和所述第二镜像中的至少一个相关联的标签。
9.根据权利要求8所述的设备,其中确定所述第一组索引值包括:
获取所述第一镜像的所述每个层的内容;以及
针对所述每个层的内容,确定一个索引值。
10.根据权利要求8所述的设备,其中确定所述第一镜像与所述第二镜像之间的相似度包括:
通过将所述第一组值中的至少一个值与所述第二组中的一组候选值分别进行比较,获得一组相似度;以及
基于所述一组相似度,确定所述第一镜像与所述第二镜像之间的相似度。
11.根据权利要求8所述的设备,其中确定所述第一镜像与所述第二镜像之间的相似度包括:
基于以下中的至少一项来确定所述第一镜像和所述第二镜像的内容之间的相似度:
汉明距离,
编辑距离,
欧几里得距离,以及
夹角余弦值。
12.根据权利要求8所述的设备,其中生成与所述第一镜像和所述第二镜像中的至少一个相关联的标签包括:
响应于所述第一镜像与所述第二镜像之间的相似度高于第一相似度阈值,为所述第一镜像和所述第二镜像分别分配第一标签;以及
将所述第一镜像与所述第二镜像存储在相同的分组中。
13.根据权利要求12所述的设备,其中所述动作还包括:
确定所述分组中的具有第一标签的镜像的数目,所述第一标签指示所述镜像的内容;以及
响应于所述具有第一标签的镜像的数目超过数目阈值,为所述分组中的所有镜像分配所述第一标签。
14.根据权利要求8所述的设备,其中生成与所述第一镜像和所述第二镜像中的至少一个相关联的标签包括:
响应于所述第一镜像的内容为已知的,确定指示所述第一镜像的内容的第二标签;
响应于所述第二镜像与所述第一镜像的内容之间的相似度超过第二相似度阈值,为所述第二镜像分配所述第二标签。
15.一种计算机可读介质,所述计算机可读介质上存储有指令,当所述指令在被机器的至少一个处理单元执行时,使得所述机器实现根据权利要求1-7任一项所述的方法。
CN201711022188.XA 2017-10-27 2017-10-27 生成镜像标签的方法、设备以及计算机可读介质 Active CN109725980B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711022188.XA CN109725980B (zh) 2017-10-27 2017-10-27 生成镜像标签的方法、设备以及计算机可读介质
US16/172,158 US10909415B2 (en) 2017-10-27 2018-10-26 Method, device and computer program product for generating image tag

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711022188.XA CN109725980B (zh) 2017-10-27 2017-10-27 生成镜像标签的方法、设备以及计算机可读介质

Publications (2)

Publication Number Publication Date
CN109725980A true CN109725980A (zh) 2019-05-07
CN109725980B CN109725980B (zh) 2023-05-16

Family

ID=66290762

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711022188.XA Active CN109725980B (zh) 2017-10-27 2017-10-27 生成镜像标签的方法、设备以及计算机可读介质

Country Status (2)

Country Link
US (1) US10909415B2 (zh)
CN (1) CN109725980B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061491A (zh) * 2019-12-11 2020-04-24 青岛海洋科学与技术国家实验室发展中心 一种基于lxc容器技术的边缘计算网关管理系统及方法
CN112084006A (zh) * 2020-09-10 2020-12-15 杭州海康威视系统技术有限公司 一种镜像包处理方法、装置及电子设备
CN112433810A (zh) * 2020-11-05 2021-03-02 北京浪潮数据技术有限公司 docker容器镜像存储、拉取方法、装置及计算机可读存储介质
CN112565373A (zh) * 2020-11-27 2021-03-26 北京天融信网络安全技术有限公司 一种镜像文件去重的方法及装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11362215B2 (en) * 2018-03-30 2022-06-14 Intel Corporation Top-gate doped thin film transistor
CN110516093B (zh) * 2019-08-28 2023-09-29 深圳力维智联技术有限公司 图片标注方法、装置及设备
US11455405B2 (en) * 2020-08-07 2022-09-27 EMC IP Holding Company LLC Optimizing docker image encryption—tradeoff between performance and protection level
US11675913B2 (en) 2020-09-18 2023-06-13 EMC IP Holding Company LLC Optimizing container image encryption

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101578609A (zh) * 2007-01-07 2009-11-11 苹果公司 安全启动计算设备
US20090279794A1 (en) * 2008-05-12 2009-11-12 Google Inc. Automatic Discovery of Popular Landmarks
US20120072410A1 (en) * 2010-09-16 2012-03-22 Microsoft Corporation Image Search by Interactive Sketching and Tagging
CN103493008A (zh) * 2011-04-07 2014-01-01 微软公司 镜像分析工具
CN104239575A (zh) * 2014-10-08 2014-12-24 清华大学 一种虚拟机镜像文件存储、分发方法及装置
CN105094760A (zh) * 2014-04-28 2015-11-25 小米科技有限责任公司 一种图片标记方法及装置
CN106445643A (zh) * 2016-11-14 2017-02-22 上海云轴信息科技有限公司 克隆、升级虚拟机的方法及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200741491A (en) * 2006-04-28 2007-11-01 Benq Corp Method and apparatus for searching images
US8559731B2 (en) * 2010-01-18 2013-10-15 International Business Machines Corporation Personalized tag ranking
US9928062B2 (en) * 2016-03-04 2018-03-27 International Business Machines Corporation ISA-ported container images
US10698925B1 (en) 2017-04-18 2020-06-30 EMC IP Holding Company LLC Grouping-based container management and data services
US10659329B1 (en) 2017-04-28 2020-05-19 EMC IP Holding Company LLC Container distance measurement and clustering

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101578609A (zh) * 2007-01-07 2009-11-11 苹果公司 安全启动计算设备
US20090279794A1 (en) * 2008-05-12 2009-11-12 Google Inc. Automatic Discovery of Popular Landmarks
US20120072410A1 (en) * 2010-09-16 2012-03-22 Microsoft Corporation Image Search by Interactive Sketching and Tagging
CN103493008A (zh) * 2011-04-07 2014-01-01 微软公司 镜像分析工具
CN105094760A (zh) * 2014-04-28 2015-11-25 小米科技有限责任公司 一种图片标记方法及装置
CN104239575A (zh) * 2014-10-08 2014-12-24 清华大学 一种虚拟机镜像文件存储、分发方法及装置
CN106445643A (zh) * 2016-11-14 2017-02-22 上海云轴信息科技有限公司 克隆、升级虚拟机的方法及设备

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BRENDAN BURNS 等: "Borg, Omega, and Kubernetes: Lessons learned from three container-management systems over a decade", 《QUEUE》 *
RUI SHU 等: "A Study of Security Vulnerabilities on Docker Hub", 《CODASPY "17: PROCEEDINGS OF THE SEVENTH ACM ON CONFERENCE ON DATA AND APPLICATION SECURITY AND PRIVACY》 *
刘明惠: "云计算中虚拟镜像管理的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
李思阳 等: "基于多级索引的云平台镜像管理系统Milance的设计与实现", 《计算机工程与科学》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061491A (zh) * 2019-12-11 2020-04-24 青岛海洋科学与技术国家实验室发展中心 一种基于lxc容器技术的边缘计算网关管理系统及方法
CN111061491B (zh) * 2019-12-11 2023-08-22 青岛海洋科技中心 一种基于lxc容器技术的边缘计算网关管理系统及方法
CN112084006A (zh) * 2020-09-10 2020-12-15 杭州海康威视系统技术有限公司 一种镜像包处理方法、装置及电子设备
CN112084006B (zh) * 2020-09-10 2024-02-02 杭州海康威视系统技术有限公司 一种镜像包处理方法、装置及电子设备
CN112433810A (zh) * 2020-11-05 2021-03-02 北京浪潮数据技术有限公司 docker容器镜像存储、拉取方法、装置及计算机可读存储介质
CN112433810B (zh) * 2020-11-05 2023-12-26 北京浪潮数据技术有限公司 docker容器镜像存储、拉取方法、装置及计算机可读存储介质
CN112565373A (zh) * 2020-11-27 2021-03-26 北京天融信网络安全技术有限公司 一种镜像文件去重的方法及装置
CN112565373B (zh) * 2020-11-27 2022-12-20 北京天融信网络安全技术有限公司 一种镜像文件去重的方法及装置

Also Published As

Publication number Publication date
US10909415B2 (en) 2021-02-02
CN109725980B (zh) 2023-05-16
US20190171907A1 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
CN109725980A (zh) 生成镜像标签的方法、设备以及计算机可读介质
US11734584B2 (en) Multi-modal construction of deep learning networks
US11049149B2 (en) Determination of targeted food recommendation
US20200142959A1 (en) Driving intent expansion via anomaly detection in a modular conversational system
US20170168690A1 (en) Sequential Recommender System for Virtualized Network Services
US11019019B2 (en) Dynamic hashtag ordering based on projected interest
US11532386B2 (en) Generating and customizing summarized notes
US11348032B1 (en) Automated generation of machine learning models
US11089000B1 (en) Automated source code log generation
US20230177363A1 (en) Generation of query templates for knowledge-graph based question answering system
US11061982B2 (en) Social media tag suggestion based on product recognition
CN112784595A (zh) 用广义词汇表标记训练和评估机器学习模型的系统和方法
US10127330B2 (en) Unbounded list processing
JP7361121B2 (ja) デュアル・ネットワークと共に訓練された主ネットワークを介した多目的タスクの実行
US20190138646A1 (en) Systematic Browsing of Automated Conversation Exchange Program Knowledge Bases
US11144610B2 (en) Page content ranking and display
US11436508B2 (en) Contextual hashtag generator
US11102161B2 (en) Social networking service content sharing
US20200394117A1 (en) Software application validation
US10168999B2 (en) Software object definition and integration
US11874899B2 (en) Automated multimodal adaptation of multimedia content
US20220326917A1 (en) Automated software application generation
US20220083876A1 (en) Shiftleft topology construction and information augmentation using machine learning
US20220309245A1 (en) Automated natural language generation and selection
US11748063B2 (en) Intelligent user centric design platform

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