1.本技术涉及计算机容器的技术领域,尤其是涉及一种容器匹配镜像的方法、系统以及计算机可读存储介质。
背景技术:2.目前,在集群管理下的个人容器,用户在创建容器时,需要选用镜像,不同镜像之间会存在很大的环境差异,为了便于开发、使用,用户需要找到适合其开发训练环境的镜像。
3.现有查找合适的镜像的方式为需要用户一个一个镜像去尝试,或者咨询维护人员;用户一个一个镜像尝试的时候,需要多次尝试新镜像,每次尝试新镜像,均需要重启,而重启则可能会造成端口变动、资源分配排队等一系列的问题,增加用户的操作成本,从而带来人力成本的浪费。
技术实现要素:4.为此,本技术的实施例提供了一种容器匹配镜像的方法、系统以及计算机可读存储介质,能够解决现有容器在创建的时候,无法快速适配合适的镜像,从而导致增加系统的操作成本的问题,具体技术方案内容如下:
5.第一方面,本技术的实施例提供一种容器匹配镜像的方法,所述方法包括:
6.构建容器镜像与第一测试环境指令的关系数据库;
7.获取用户的容器镜像请求,所述容器镜像请求包括与容器镜像对应的第二测试环境指令;
8.匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像。
9.优选的,所述匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像包括:
10.搜索关系数据库中与第二测试环境指令相匹配的第一测试环境指令;
11.如果第一测试环境指令全包含第二测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器。
12.优选的,所述方法还包括:
13.如果第二测试环境指令全包含第一测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器并进行容器内部测试;
14.如果容器内部测试成功,在关系数据库中用第二测试环境指令替换第一测试环境指令。
15.优选的,所述关系数据库维护有与容器镜像一一对应的镜像标签,所述方法还包括:
16.如果容器内部测试失败,继续搜索满足第二测试环境指令全包含第一测试环境指
令的其他第一测试环境指令,提取该其他第一测试环境指令对应的容器镜像的镜像标签,来替换当前容器yaml配置文件中的镜像标签,以重启该容器,然后重新进行内部测试。
17.优选的,所述方法还包括:
18.如果重新进行内部测试后,测试失败,至少重新匹配预设次数的第一测试环境指令与第二测试环境指令。
19.优选的,所述方法还包括:
20.如果重新匹配第一测试环境指令与第二测试环境指令满足预设次数后,仍未找到所需的容器镜像,维护镜像标签列表,所述镜像标签列表维护有镜像仓库中与关系数据库中容器镜像不具有同源镜像层的容器镜像;
21.根据第二测试环境指令,在镜像标签列表中搜索与所述第二测试环境指令相匹配的容器镜像。
22.优选的,所述维护镜像标签列表包括:
23.遍历镜像仓库所有容器镜像,得到当前遍历的容器镜像的第一镜像层结构;
24.遍历关系数据库镜像标签,得到遍历的镜像标签对应的容器镜像的第二镜像层结构
25.判断第一镜像层结构的最顶层镜像层与第二镜像层结构是否有同源镜像层;
26.如果第一镜像层结构的最顶层镜像层与第二镜像层结构有同源镜像层,则继续遍历镜像仓库所有容器镜像,得到遍历的下一个容器镜像的第一镜像层结构;
27.如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,则判断第二镜像层结构的最顶层镜像层与第一镜像层结构是否有同源镜像层;
28.如果第二镜像层结构的最顶层镜像层与第一镜像层结构有同源镜像层,在关系数据库中将该第二镜像层结构对应的镜像标签更新为该第一镜像层结构对应的容器镜像的镜像标签;
29.如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,且第二镜像层结构的最顶层镜像层与第一镜像层结构没有同源镜像层,将该镜像标签更新至镜像标签列表的最后一行。
30.优选的,所述方法还包括:
31.如果由镜像标签列表仍然没有匹配到所需容器镜像,返回提示信息。
32.第二方面,本技术的实施例提供一种容器匹配镜像的系统,所述系统包括:
33.维护模块,用于构建容器镜像与第一测试环境指令的关系数据库;
34.请求模块,用于获取用户的容器镜像请求,所述容器镜像请求包括与容器镜像对应的第二测试环境指令;
35.匹配模块,匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像。
36.第三方面,本技术的实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述任意一项所述的容器匹配镜像的方法的步骤。
37.综上所述,与现有技术相比,本技术实施例提供的技术方案带来的有益效果至少包括:
38.通过维护关系数据库,关系数据库中记录了容器镜像与第一测试环境指令的关系,从而通过匹配第一测试环境指令即可寻找到所需的容器镜像。用户提出容器镜像请求,在容器镜像请求中包含了所需容器镜像的第二测试环境指令,第一测试环境指令与第二测试环境指令均用于描述测试环境,第一测试环境指令描述对应的容器镜像适合的测试环境,第二测试指令描述的是用户所需的容器镜像的测试环境,通过二测试环境指令与第一测试环境指令的匹配,若关系数据库中存在有与第二测试环境指令匹配的第一测试环境指令,则可以选取到合适的容器镜像,减少重启容器的次数,快速匹配所需容器镜像,降低操作成本。
附图说明
39.图1是本技术其中一实施例提供的一种容器匹配镜像的方法的流程示意图。
40.图2是本技术另一实施例提供的一种容器匹配镜像的方法的流程示意图。
具体实施方式
41.本具体实施例仅仅是对本技术的解释,其并不是对本技术的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本技术的权利要求范围内都受到专利法的保护。
42.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
43.另外,本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
44.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
45.下面结合说明书附图对本技术实施例作进一步详细描述。
46.参照图1,在本技术的一个实施例中,提供一种容器匹配镜像的方法,所述方法的主要步骤描述如下:
47.s1:构建容器镜像与第一测试环境指令的关系数据库;
48.s2:获取用户的容器镜像请求,所述容器镜像请求包括与容器镜像对应的第二测试环境指令;
49.s3:匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像。
50.具体的,构建容器镜像与第一测试环境指令的关系数据库,通过给容器镜像添加适用测试环境的标签,即第一测试环境指令,对容器镜像按照适用环境分类;在本实施例中,第一测试环境指令为字符串。
51.具体的,在本实施例中,第二测试环境指令为用户提交的容器镜像请求中包含的
内容,用户通过客户端提交的容器镜像请求包括gpu,cpu,memory,容器名称等容器信息以及第二测试环境指令,第二测试环境指令为一连串的用户为了验证新容器是否达标而提供的测试脚本。在本领域中,工程师创建了新容器之后都会在新容器里面实验性的测试一些环境,以判断容器镜像是否适用。
52.进一步的,在本实施例中,第二测试环境指令以文件路径或者字符串的形式提交。若以文件路径的形式提交,则根据文件路径自动获取文件,并将文件内容转化为字符串,最终是以字符串的形式发送相应的接口;若是以字符串的形式提交,则直接发送至相应的接口。
53.关系数据库中记录了容器镜像与对应的第一测试环境指令的关系,具体的,在数据库的每一行记录了id、镜像标签以及第一测试环境指令。
54.本技术通过维护有关系数据库,关系数据库中记录了容器镜像与第一测试环境指令的关系,从而通过匹配第一测试环境指令即可寻找到所需的容器镜像。用户提出容器镜像请求,在容器镜像请求中包含了所需容器镜像的第二测试环境指令,第一测试环境指令与第二测试环境指令均用于描述测试环境,第一测试环境指令描述对应的容器镜像适合的测试环境,第二测试指令描述的是用户所需的容器镜像的测试环境,通过二测试环境指令与第一测试环境指令的匹配,若关系数据库中存在有与第二测试环境指令匹配的第一测试环境指令,则可以选取到合适的容器镜像,减少重启容器的次数,降低操作成本。
55.参照图2,可选的,在另一实施方式中,步骤s3包括:
56.s31:搜索关系数据库中与第二测试环境指令相匹配的第一测试环境指令;
57.s32:如果第一测试环境指令全包含第二测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器。
58.具体的,在本实施方式中,第二测试环境指令包含第二测试环境字符串,第一测试环境指令包含第一测试环境字符串,第一测试环境指令全包含第二测试环境指令为第一测试环境字符串全包含第二测试环境字符串,即第一测试环境字符串还可能有除第二测试环境字符串以外的其他内容,第一测试环境字符串包含当前容器镜像请求中所需的镜像容器,此时直接选用该镜像容器,即可建立容器。
59.在本实施方式中,如果不能搜索到全包含第一测试环境指令中关于容器镜像的第一测试环境字符串的第二测试环境字符串,则结束在关系数据库中的搜索,转去镜像仓库镜像匹配,在其他实施方式中,也可以直接报错,人工进行修复。
60.可选的,在另一实施方式中,所述方法还包括:
61.s33:如果第二测试环境指令全包含第一测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器并进行容器内部测试;
62.s34:如果容器内部测试成功,在关系数据库中用第二测试环境指令替换第一测试环境指令。
63.具体的,在本实施方式中,第二测试环境指令全包含第一测试环境指令,即第二测试环境字符串全包含第一测试环境字符串,说明第一测试环境指令对应的镜像容器中包含有实现第二测试环境指令的部分条件,采用该第一测试环境指令对应的容器镜像建立容器,存在有满足用户需求的情况。
64.利用上述第一测试环境指令对应的容器镜像来建立容器之后,在容器内部进行测
试环境,即进行内部测试,若内部测试没有报错,说明选择的容器镜像满足条件,且可以满足更广的测试指令,此时,采用第二测试环境指令替换关系数据库中匹配到的第一测试环境指令,以进一步提高该容器镜像的适用范围。
65.在本实施方式中,采用第二测试环境指令替换关系数据库中匹配到的第一测试环境指令具体为:采用第二测试环境字符串替换关系数据库中匹配到的第一测试环境字符串。
66.可选的,在另一实施方式中,关系数据库维护有与容器镜像一一对应的镜像标签,所述方法还包括:
67.s35:如果容器内部测试失败,继续搜索满足第二测试环境指令全包含第一测试环境指令的其他第一测试环境指令,提取该其他第一测试环境指令对应的容器镜像的镜像标签,来替换当前容器yaml配置文件中的镜像标签,以重启该容器,然后重新进行内部测试。
68.具体的,在本实施方式中,在一次内部测试失败之后,继续在关系数据库中搜索满足第二测试环境指令全包含第一测试环境指令的其他第一测试环境指令,提取该第一测试环境指令对应的容器镜像,将该容器镜像的镜像标签替换前一次匹配时建立的容器的yaml配置里文件中的镜像标签,使系统重新启动该容器,通过当前容器重启方式,可以原地启动该容器,资源、端口等信息不变,也不会影响到其他容器的运行和创建。
69.具体的,在本实施方式中,通过本实施方式容器重启的方式在第二测试环境指令仍有可搜索到的未曾应用过的容器镜像的第一测试环境指令进行匹配时多次进行,直至没有可匹配的第一测试环境指令或者匹配到内部测试成功的容器镜像。在其他实施方式中,也可预设进行第二测试环境指令与第一测试环境指令进行匹配的预设次数,在到达预设次数,则不再进行匹配。
70.参照图2,可选的,在另一实施方式中,所述方法还包括:
71.s36:如果重新进行内部测试后,测试失败,至少重新匹配预设次数的第一测试环境指令与第二测试环境指令。
72.具体的,在本实施方式中,在重新进行内部测试之后,如果测试失败,至少重新匹配预设次数的第一测试环境指令与第二测试环境指令,进行预设次数次匹配,提高匹配的成功率。在本实施方式中,预设次数可以为1次、2次、3次、4次等,在此不做限定。
73.可选的,在另一实施方式中,所述方法还包括:
74.s37:如果重新匹配第一测试环境指令与第二测试环境指令满足预设次数后,仍未找到所需的容器镜像,维护镜像标签列表,所述镜像标签列表维护有镜像仓库中与关系数据库中容器镜像不具有同源镜像层的容器镜像;
75.s38:根据第二测试环境指令,在镜像标签中搜索与所述第二测试环境指令相匹配的容器镜像。
76.具体的,在本实施方式中,在重新匹配第一测试环境指令与第二测试环境指令满足预设次数,仍未找到所需的容器镜像,可能的情况为,预设次数个被第二测试环境指令包含的第一测试环境指令对应的容器镜像的镜像标签替换当前容器中yaml配置文件中的镜像标签,重新进行内部测试,但是测试仍然失败。
77.在本实施方式中,维护镜像标签列表,在镜像标签列表中存有关系数据库中没有的容器镜像,通过镜像标签列表中镜像搜索与第二测试环境指令相匹配的容器镜像,以满
足用户需求,进一步提高匹配的成功率。
78.可选的,在另一实施方式中,维护镜像标签列表的方法包括:
79.1、遍历镜像仓库所有容器镜像,得到当前遍历的容器镜像的第一镜像层结构;
80.2、遍历关系数据库镜像标签,得到遍历的镜像标签对应的容器镜像的第二镜像层结构;
81.3、判断第一镜像层结构的最顶层镜像层与第二镜像层结构是否有同源镜像层;
82.4、如果第一镜像层结构的最顶层镜像层与第二镜像层结构有同源镜像层,则继续遍历镜像仓库所有容器镜像,得到遍历的下一个容器镜像的第一镜像层结构;
83.5、如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,则判断第二镜像层结构的最顶层镜像层与第一镜像层结构是否有同源镜像层;
84.6、如果第二镜像层结构的最顶层镜像层与第一镜像层结构有同源镜像层,在关系数据库中将该第二镜像层结构对应的镜像标签更新为该第一镜像层结构对应的容器镜像的镜像标签;
85.7、如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,且第二镜像层结构的最顶层镜像层与第一镜像层结构没有同源镜像层,将该镜像标签更新至镜像标签列表的最后一行。
86.具体的,每个镜像都由若干个镜像层组成。在本实施方式中,在初始的时候,镜像标签列表为空,当第一镜像层结构的最顶层镜像与第二镜像层结构中有同源镜像层,说明该第一镜像层结构对应的容器镜像在关系数据库中已经存在,可以忽略该容器镜像;当第二镜像层结构的最顶层镜像与第一镜像层结构中有同源镜像层,则说明当前该第一镜像层结构对应的容器镜像比在关系数据库中的第二镜像层结构对应的容器镜像跟家全面,则将关系数据库中的第二镜像层结构对应的容器的镜像标签替换为第一镜像层结构对应的容器的镜像标签。
87.通过本实施方式的设置,可以由优化排除大量的镜像,以使镜像标签列表中的镜像与关系数据库中的镜像的重叠较少。
88.可选的,在另一实施方式中,所述方法还包括:
89.s39:如果由镜像标签列表仍然没有匹配到所需容器镜像,返回提示信息。
90.具体的,在本实施方式中,提示信息用于告诉用户当前没有匹配的容器镜像。
91.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
92.在本技术的一个实施例中,提供一种容器匹配镜像的系统,该容器匹配镜像的系统与上述实施例中的容器匹配镜像的方法一一对应。该容器匹配镜像的系统包:
93.维护模块,用于构建容器镜像与第一测试环境指令的关系数据库;
94.请求模块,用于获取用户的容器镜像请求,所述容器镜像请求包括与容器镜像对应的第二测试环境指令;
95.匹配模块,匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像。
96.进一步的,在另一实施方式中,第二测试环境指令以文件路径或者字符串的形式
提交。
97.进一步的,在另一实施方式中,匹配模块还用于搜索关系数据库中与第二测试环境指令相匹配的第一测试环境指令;如果第一测试环境指令全包含第二测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器。
98.进一步的,在另一实施方式中,匹配模块还用于如果第二测试环境指令全包含第一测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器并进行容器内部测试;如果容器内部测试成功,在关系数据库中用第二测试环境指令替换第一测试环境指令。
99.进一步的,在另一实施方式中,匹配模块还用于如果容器内部测试失败,继续搜索满足第二测试环境指令全包含第一测试环境指令的其他第一测试环境指令,提取该其他第一测试环境指令对应的容器镜像的镜像标签,来替换当前容器yaml配置文件中的镜像标签,以重启该容器,然后重新进行内部测试。
100.进一步的,在另一实施方式中,匹配模块还用于如果重新进行内部测试后,测试失败,至少重新匹配预设次数的第一测试环境指令与第二测试环境指令。
101.进一步的,在另一实施方式中,匹配模块还用于如果重新匹配第一测试环境指令与第二测试环境指令满足预设次数后,仍未找到所需的容器镜像,维护镜像标签列表,所述镜像标签列表维护有镜像仓库中与关系数据库中容器镜像不具有同源镜像层的容器镜像;根据第二测试环境指令,在镜像标签中搜索与所述第二测试环境指令相匹配的容器镜像。
102.进一步的,在另一实施方式中,维护镜像标签列表的方法包括:
103.1、遍历镜像仓库所有容器镜像,得到当前遍历的容器镜像的第一镜像层结构;
104.2、遍历关系数据库镜像标签,得到遍历的镜像标签对应的容器镜像的第二镜像层结构;
105.3、判断第一镜像层结构的最顶层镜像层与第二镜像层结构是否有同源镜像层;
106.4、如果第一镜像层结构的最顶层镜像层与第二镜像层结构有同源镜像层,则继续遍历镜像仓库所有容器镜像,得到遍历的下一个容器镜像的第一镜像层结构;
107.5、如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,则判断第二镜像层结构的最顶层镜像层与第一镜像层结构是否有同源镜像层;
108.6、如果第二镜像层结构的最顶层镜像层与第一镜像层结构有同源镜像层,在关系数据库中将该第二镜像层结构对应的镜像标签更新为该第一镜像层结构对应的容器镜像的镜像标签;
109.7、如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,且第二镜像层结构的最顶层镜像层与第一镜像层结构没有同源镜像层,将该镜像标签更新至镜像标签列表的最后一行。
110.进一步的,在另一实施方式中,匹配模块还用于如果由镜像标签列表仍然没有匹配到所需容器镜像,返回提示信息。
111.上述的容器匹配镜像的系统各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
112.在本技术实施例的一个实施例中,提供一种计算机设备,该计算机设备可以是服务器。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机
设备的处理器用于提供计算和控制能力。该计算机设备的存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,易失性或非易失性存储设备包括但不限于:磁盘,光盘,eeprom(electrically-erasable programmable read only memory,电可擦除可编程只读存储器),eprom(erasable programmable read only memory,可擦除可编程只读存储器),sram(static random access memory,静态随时存取存储器),rom(read-only memory,只读存储器),磁存储器,快闪存储器,prom(programmable read-only memory,可编程只读存储器)。该计算机设备的存储器为存储于其内部的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现上述实施例所述的容器匹配镜像的方法步骤。
113.在本技术的一个实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的容器匹配镜像的方法步骤。所述计算机可读存储介质包括rom(read-only memory,只读存储器)、ram(random-access memory,随机存取存储器)、cd-rom(compact disc read-only memory,只读光盘)、磁盘、软盘等。
114.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将本技术所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
技术特征:1.一种容器匹配镜像的方法,其特征在于,所述方法包括:构建容器镜像与第一测试环境指令的关系数据库;获取用户的容器镜像请求,所述容器镜像请求包括与容器镜像对应的第二测试环境指令;匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像。2.根据权利要求1所述的容器匹配镜像的方法,其特征在于,所述匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像包括:搜索关系数据库中与第二测试环境指令相匹配的第一测试环境指令;如果第一测试环境指令全包含第二测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器。3.根据权利要求2所述的容器匹配镜像的方法,其特征在于,所述方法还包括:如果第二测试环境指令全包含第一测试环境指令,提取该第一测试环境指令对应的容器镜像,创建容器并进行容器内部测试;如果容器内部测试成功,在关系数据库中用第二测试环境指令替换第一测试环境指令。4.根据权利要求3所述的容器匹配镜像的方法,其特征在于,所述关系数据库维护有与容器镜像一一对应的镜像标签,所述方法还包括:如果容器内部测试失败,继续搜索满足第二测试环境指令全包含第一测试环境指令的其他第一测试环境指令,提取该其他第一测试环境指令对应的容器镜像的镜像标签,来替换当前容器yaml配置文件中的镜像标签,以重启该容器,然后重新进行内部测试。5.根据权利要求4所述的容器匹配镜像的方法,其特征在于,所述方法还包括:如果重新进行内部测试后,测试失败,至少重新匹配预设次数的第一测试环境指令与第二测试环境指令。6.根据权利要求5所述的容器匹配镜像的方法,其特征在于,所述方法还包括:如果重新匹配第一测试环境指令与第二测试环境指令满足预设次数后,仍未找到所需的容器镜像,维护镜像标签列表,所述镜像标签列表维护有镜像仓库中与关系数据库中容器镜像不具有同源镜像层的容器镜像;根据第二测试环境指令,在镜像标签列表中搜索与所述第二测试环境指令相匹配的容器镜像。7.根据权利要求6所述的容器匹配镜像的方法,其特征在于,所述维护镜像标签列表包括:遍历镜像仓库所有容器镜像,得到当前遍历的容器镜像的第一镜像层结构;遍历关系数据库镜像标签,得到遍历的镜像标签对应的容器镜像的第二镜像层结构;判断第一镜像层结构的最顶层镜像层与第二镜像层结构是否有同源镜像层;如果第一镜像层结构的最顶层镜像层与第二镜像层结构有同源镜像层,则继续遍历镜像仓库所有容器镜像,得到遍历的下一个容器镜像的第一镜像层结构;如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,则判断第二镜像层结构的最顶层镜像层与第一镜像层结构是否有同源镜像层;
如果第二镜像层结构的最顶层镜像层与第一镜像层结构有同源镜像层,在关系数据库中将该第二镜像层结构对应的镜像标签更新为该第一镜像层结构对应的容器镜像的镜像标签;如果第一镜像层结构的最顶层镜像层与第二镜像层结构没有同源镜像层,且第二镜像层结构的最顶层镜像层与第一镜像层结构没有同源镜像层,将该镜像标签更新至镜像标签列表的最后一行。8.根据权利要求7所述的容器匹配镜像的方法,其特征在于,所述方法还包括:如果由镜像标签列表仍然没有匹配到所需容器镜像,返回提示信息。9.一种容器匹配镜像的系统,其特征在于,所述系统包括:维护模块,用于构建容器镜像与第一测试环境指令的关系数据库;请求模块,用于获取用户的容器镜像请求,所述容器镜像请求包括与容器镜像对应的第二测试环境指令;匹配模块,匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任意一项所述的容器匹配镜像的方法的步骤。
技术总结本申请涉及计算机容器的技术领域,尤其是涉及一种容器匹配镜像的方法、系统以及计算机可读存储介质。该方法包括:构建容器镜像与第一测试环境指令的关系数据库;获取用户的容器镜像请求,所述容器镜像请求包括与容器镜像对应的第二测试环境指令;匹配第二测试环境指令与第一测试环境指令,在所述关系数据库中搜索与所述第二测试环境指令相匹配的容器镜像。本申请可以实现容器快速适配合适的镜像,以减少系统的操作成本的效果。系统的操作成本的效果。系统的操作成本的效果。
技术研发人员:杨逸飞 陈飞 韩旭
受保护的技术使用者:广州文远知行科技有限公司
技术研发日:2022.03.21
技术公布日:2022/7/5