CN114706658A - 一种容器镜像数据处理方法、装置、设备及介质 - Google Patents

一种容器镜像数据处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN114706658A
CN114706658A CN202210319317.6A CN202210319317A CN114706658A CN 114706658 A CN114706658 A CN 114706658A CN 202210319317 A CN202210319317 A CN 202210319317A CN 114706658 A CN114706658 A CN 114706658A
Authority
CN
China
Prior art keywords
file
mirror image
preset
image
container
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.)
Pending
Application number
CN202210319317.6A
Other languages
English (en)
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202210319317.6A priority Critical patent/CN114706658A/zh
Publication of CN114706658A publication Critical patent/CN114706658A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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
    • 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
    • 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/45595Network integration; Enabling network access in 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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种容器镜像数据处理方法、装置、设备及介质,应用于与容器镜像仓库进行对接的容器镜像数据处理装置,该方法包括:获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于事件信息确定符合预设文件处理条件的目标镜像文件;创建与目标镜像文件对应的第一索引文件;基于预设检查处理方法对第一索引文件中的文件信息进行处理,以得到与目标镜像文件对应的第二索引文件;将第二索引文件通过预设交互接口发送至容器镜像仓库。本发明在事件驱动下,利用容器镜像数据处理装置创建包含多CPU架构的索引文件,减少了用户镜像上传时的繁琐操作,在大规模镜像的多架构数据的制作和推送的场景中有显著的效果。

Description

一种容器镜像数据处理方法、装置、设备及介质
技术领域
本发明涉及容器镜像技术领域,特别涉及一种容器镜像数据处理方法、装置、设备及介质。
背景技术
容器镜像是依赖运行平台运行的,不同类型的OS(即operating system,操作系统)和CPU(即Central Processing Unit,中央处理器)架构的机器运行的容器镜像的CPU架构是不同的。在容器镜像仓库(即registry)存储中,通过一种索引文件来描述镜像的多CPU架构,这样在不同OS和CPU架构的机器上下载镜像的时候,就可以通过镜像的索引文件找到对应体系架构的镜像进行下载。
在云计算应用领域,越来越多的云的基础设施都是基于K8s(即kubernetes)等云原生架构构建的。随着飞腾、龙芯等不同CPU架构的国产芯片的普及,支持混合架构的云愈发普遍,这就要求同一个镜像的版本必须支持多种CPU架构。
在传统的方式中,用户需要开发自己的程序后再对每个镜像的版本编写多CPU架构索引文件,并通过docker manifest或者manifest-tool这样的工具手动推送到容器镜像仓库进行存储,这样的方式显然增加了开发者的工作量与学习成本,还增加了镜像多架构索引文件的管理成本。
由上可见,在容器镜像上传至容器镜像仓库过程中,如何避免出现由于传统的上传方式导致用户端镜像上传过程繁琐,且对于镜像的管理成本高的情况是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种容器镜像数据处理方法、装置、设备及介质,能够本方案所述的容器镜像数据处理装置实现一种基于事件驱动的多CPU架构容器镜像自动推送过程,使用户无需关心镜像的多架构数据制作以及推送,也无需考虑镜像多CPU架构数据索引文件的管理问题,而直接将构建的镜像推送到容器镜像仓库即可,本方法在大规模镜像的多架构数据的制作和推送的场景中有显著的效果。其具体方案如下:
第一方面,本申请公开了一种容器镜像数据处理方法,应用于与容器镜像仓库进行对接的容器镜像数据处理装置,该方法包括:
获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件;
创建与所述目标镜像文件对应的第一索引文件;
基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;
将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。
可选的,所述获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件之前,还包括:
创建包含多种配置项的配置文件,并通过预设配置参数获取接口获取用于配置所述配置项的配置参数,以便利用所述配置文件对所述容器镜像数据处理装置进行配置;其中,所述配置项包括:用于与容器镜像仓库进行对接的配置项、用于设定本装置支持处理的镜像CPU架构的配置项、用于设定manifest文件的检查超时时间的配置项、用于设定异常镜像的扫描周期的配置项、用于设定异常镜像的输出路径的配置项以及用于设定线程池最大线程数的配置项中的任意一种或多种的组合。
可选的,所述基于所述事件信息确定符合预设文件处理条件的目标镜像文件,包括:
判断所述事件信息是否为预设镜像推送事件;
若所述事件信息为预设镜像推送事件,则获取所述事件信息所对应的镜像文件,并判断所述镜像文件的元数据类型是否为预设元数据类型;
若所述镜像文件的元数据类型为预设元数据类型,则获取所述事件信息所对应的镜像文件的镜像名称,并基于所述镜像名称确定镜像文件的第一架构类型;所述镜像名称为由客户端设定的且包含有所述镜像文件的第一架构类型的名称;
利用预设类型识别方法对所述镜像文件的镜像架构类型进行识别,以获取所述镜像文件的第二架构类型;
判断所述第一架构类型与所述第二架构类型是否一致;
若所述第一架构类型与所述第二架构类型一致,则确定所述镜像文件的目标架构类型,并判断所述目标架构类型是否为预设架构类型;
若所述目标架构类型为预设架构类型,则按照预设检查重试机制对所述容器镜像仓库中与所述镜像文件对应的manifest文件进行检查;
若检查未通过,则将所述镜像文件确定为异常镜像文件;
若检查通过,则将所述镜像文件确定为目标镜像文件。
可选的,所述创建与所述目标镜像文件对应的第一索引文件,包括:
创建与所述目标镜像文件对应的且包含有所述配置项中所设定的本装置支持处理的全部镜像CPU架构的第一索引文件;
相应的,所述基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,包括:
判断所述第一索引文件中的所述镜像CPU架构是否全部可用;
若所述第一索引文件中的所述镜像CPU架构全部可用,则将所述第一索引文件确定为第二索引文件;
若所述第一索引文件中的所述镜像CPU架构并非全部可用,则从所述全部镜像CPU架构中确定出不可用CPU架构,并将所述第一索引文件中所述不可用CPU架构所对应的不可用架构信息进行删除,然后将所述不可用架构信息进行删除后的第一索引文件确定为第二索引文件。
可选的,所述判断所述第一索引文件中的所述镜像CPU架构是否全部可用,包括:
从所述第一索引文件中的所述全部镜像CPU架构中确定出当前的目标CPU架构;
判断所述容器镜像仓库中是否存在与所述当前的目标CPU架构所对应的manifest文件;
若所述容器镜像仓库中不存在与所述当前的目标CPU架构所对应的manifest文件,则将所述当前的目标CPU架构标记为不可用CPU架构;
若所述容器镜像仓库中存在与所述当前的目标CPU架构所对应的manifest文件,则将所述当前的目标CPU架构标记为可用CPU架构,并基于所述第一索引文件中除已确定的不可用CPU架构与可用CPU架构以外的剩余镜像CPU架构,重新确定当前的目标CPU架构,并触发判断所述容器镜像仓库中是否存在与当前的所述目标CPU架构所对应的manifest文件的步骤;
根据所述不可用CPU架构与可用CPU架构的标记情况确定所述第一索引文件中的所述镜像CPU架构是否全部可用。
可选的,所述容器镜像数据处理方法,还包括:
若本次对接操作为首次对接操作,则获取容器镜像仓库中的历史镜像文件,并采用预设递归规则将容器镜像仓库中的历史镜像文件提取至预设镜像列表中;
基于所述预设镜像列表与预设计算规则确定所述各历史镜像文件与各预设线程之间的映射关系;
利用所述预设线程基于所述映射关系从当前所述预设线程所对应的所述各历史镜像文件中确定出目标镜像文件;
相应的,所述创建与所述目标镜像文件对应的第一索引文件,基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库,包括:
利用所述预设线程创建与所述目标镜像文件对应的第一索引文件,并基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;
利用所述预设线程通过预设交互接口将所述第二索引文件发送至容器镜像仓库。
可选的,所述容器镜像数据处理方法,还包括:
将未成功发送至容器镜像仓库的第二索引文件所对应的镜像文件确定为异常镜像文件;
将所述异常镜像文件对应的镜像信息保存至预设异常文件中;所述镜像信息包括镜像名称、镜像版本号以及镜像哈希值;
按照所述配置项中设定的异常镜像的扫描周期对所述预设异常文件中全部的所述镜像信息进行解析,然后触发创建所述第一索引文件与所述第二索引文件的流程;
若所述异常镜像文件所对应的第二索引文件创建成功,则将所述第二索引文件通过预设交互接口发送至容器镜像仓库,并将当前所述异常镜像文件在所述预设异常文件中所对应的镜像信息进行删除。
第二方面,本申请公开了一种容器镜像数据处理装置,包括:
镜像文件确定模块,用于获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件;
第一索引文件创建模块,用于创建与所述目标镜像文件对应的第一索引文件;
第二索引文件创建模块,用于基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;
文件发送模块,用于将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的容器镜像数据处理方法。
第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的容器镜像数据处理方法的步骤。
本申请通过先获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件,然后创建与所述目标镜像文件对应的第一索引文件,基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,最后将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。这样一来,对于用户端来说,用户无需关心镜像的相关数据制作以及推送,也无需考虑镜像数据索引文件的管理问题,用户还是按照之前的方式只需要开发自己的程序,并将构建的镜像推送到容器镜像仓库,而后续索引文件的创建过程则由本申请中提出的与容器镜像仓库进行对接的容器镜像数据处理装置进行处理,并自动化推送至容器镜像仓库。本方法提升了镜像文件上传的合理性,减少了用户端推送镜像中的繁琐过程,在大规模镜像的多架构数据的制作和推送的场景中有显著的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种容器镜像数据处理方法流程图;
图2为本申请提出的一种容器镜像数据处理装置的数据处理流程图;
图3为本申请提供的一种具体的容器镜像数据处理流程图;
图4为本申请提供的一种容器镜像数据处理装置结构示意图;
图5为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,用户需要开发自己的程序后再对每个镜像的版本编写多CPU架构索引文件,并通过docker manifest或者manifest-tool这样的工具手动推送到容器镜像仓库进行存储,这样的方式显然增加了开发者的工作量与学习成本,还增加了镜像多架构索引文件的管理成本。而在本申请中,提出了一种与容器镜像仓库进行对接的容器镜像数据处理装置,本装置可通过事件驱动的方式自动完成索引文件的创建过程,在大规模镜像的多架构数据的制作和推送的场景中实现显著的效果。
本发明实施例公开了一种容器镜像数据处理方法,应用于与容器镜像仓库进行对接的容器镜像数据处理装置,参见图1所述,该方法包括:
步骤S11:获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件。
可以理解的是,用户端在开发自己的程序后,用户通过客户端(例如:dockerpush,devops流水线等)将构建的镜像文件推送到容器镜像仓库,相应的,容器镜像仓库在接收到用户上传的镜像文件后,会向本方案中提出的预先与上述容器镜像仓库进行连接的容器镜像数据处理装置发送相应的事件通知,在本装置接收到由所述容器镜像仓库发送的事件通知后,会确定并查找相应的被上传的镜像文件,将所述镜像文件确定为目标镜像文件,进而进行后续的数据处理操作。需要指出的是,本发明中提出的容器镜像数据处理装置可对接常用的镜像仓库registry或者企业级镜像仓库harbor。
本实施例中,所述获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件之前,还可以包括:创建包含多种配置项的配置文件,并通过预设配置参数获取接口获取用于配置所述配置项的配置参数,以便利用所述配置文件对所述容器镜像数据处理装置进行配置;其中,所述配置项包括:用于与容器镜像仓库进行对接的配置项、用于设定本装置支持处理的镜像CPU架构的配置项、用于设定manifest文件的检查超时时间的配置项、用于设定异常镜像的扫描周期的配置项、用于设定异常镜像的输出路径的配置项以及用于设定线程池最大线程数的配置项中的任意一种或多种的组合。
可以理解的是,在装置的应用之前,先要对装置进行一些配置的设置,基于每个混合架构云的要求不一样,比如有的混合架构支持amd64(X86机器)、arm64,有的混合架构支持amd64、arm64、mips64le等,本装置先创建配置文件,并把这些经常变化的项提取到配置文件里面作为配置项,最后利用所述配置文件对所述容器镜像数据处理装置进行配置。在一种具体实施方式中,所述配置文件中的配置项可以包括:registryServer:容器镜像仓库的访问地址;registryUser:容器镜像仓库的账号;registryPassword:容器镜像仓库的账号密码;archList:本装置支持处理的镜像CPU架构(本装置可支持linux/arm64,linux/mips64el,linux/amd64,linux/mips64,linux/mips32le,linux/arm等几乎所有的操作系统以及CPU架构);checkManifestTimeout:镜像Manifest的检查超时时间(默认为5s);errorImageJobPeriod:异常镜像文件的扫描周期(默认为60s);imageErrorPath:异常镜像文件的输出路径;syncMaxPool,线程池最大线程数。需要指出的是,所述配置文件中可设置的配置项包括但不限于上述所述各配置项。
本实施例中,所述基于所述事件信息确定符合预设文件处理条件的目标镜像文件,可以包括:判断所述事件信息是否为预设镜像推送事件;若所述事件信息为预设镜像推送事件,则获取所述事件信息所对应的镜像文件,并判断所述镜像文件的元数据类型是否为预设元数据类型;若所述镜像文件的元数据类型为预设元数据类型,则获取所述事件信息所对应的镜像文件的镜像名称,并基于所述镜像名称确定镜像文件的第一架构类型;所述镜像名称为由客户端设定的且包含有所述镜像文件的第一架构类型的名称;利用预设类型识别方法对所述镜像文件的镜像架构类型进行识别,以获取所述镜像文件的第二架构类型;判断所述第一架构类型与所述第二架构类型是否一致;若所述第一架构类型与所述第二架构类型一致,则确定所述镜像文件的目标架构类型,并判断所述目标架构类型是否为预设架构类型;若所述目标架构类型为预设架构类型,则按照预设检查重试机制对所述容器镜像仓库中与所述镜像文件对应的manifest文件进行检查;若检查未通过,则将所述镜像文件确定为异常镜像文件;若检查通过,则将所述镜像文件确定为目标镜像文件。
可以理解的是,所述容器镜像仓库可能会向所述容器镜像数据处理装置发送多种notification(即上述“事件通知”),而本装置只会在接收到预设镜像推送事件的notification后,才会对所述镜像文件进行后续的数据处理,在一种具体实施方式中,所述预设镜像推送事件可以是镜像push产生的事件,即本装置在接收到来自容器镜像仓库的notification后,检查所述notification所对应的事件是否为镜像push产生的事件,若是,则会对对应的镜像文件进行数据处理,若不是,则不会对所述镜像文件进行数据处理。
若在检查所述notification所对应的事件是镜像push产生的事件后,则会对镜像文件的元数据类型进行检查,在一种具体实施方式中,可以通过正则表达式`^application/vnd.docker.distribution.manifest.v\d\+(json|prettyjws)`匹配镜像的元数据类型。在一种具体实施方式中,若所述预设元数据类型为manifest.v\d\的类型,则本装置只会处理元数据类型是manifest.v\d\的类型,而不进行处理其余的类型,并将其余类型进行过滤。
接着进入下一步处理过程,若所述镜像文件的元数据类型为预设元数据类型,则会获取所述事件信息所对应的镜像文件的镜像名称,并基于所述镜像名称确定镜像文件的第一架构类型,然后利用预设类型识别方法对所述镜像文件的镜像架构类型进行识别,以获取所述镜像文件的第二架构类型,最后判断所述第一架构类型与所述第二架构类型是否一致。本步骤旨在为了检查镜像名称中的架构类型与镜像文件本身的架构类型是否一致,若一致,则表明当前的镜像文件为正确命名的文件。
需要指出的是,本方法要求用户在上传镜像文件时,须以固定的命名方式对所述镜像文件的名称进行命名,具体实施过程中,可以使用xxx-架构的命名方式,例如:nginx(默认为amd64),nginx-arm64,nginx-mips64el,nginx-amd64等。
接着进入下一步处理过程,若检查镜像名称中的CPU架构类型与镜像文件本身的架构类型一致,则确定所述镜像文件的目标架构类型,并判断所述目标架构类型是否为预设架构类型。此处所述预设架构类型可以是上述配置项archList中所定义的本装置支持处理的镜像CPU架构,也就是说,文件的架构类型必须为本装置可以进行处理的架构类型,才可以进入接下来的流程。
接着进入下一步处理过程,若所述目标架构类型为预设架构类型,则按照预设检查重试机制对所述容器镜像仓库中与所述镜像文件对应的manifest文件进行检查。可以理解的是,在镜像文件被上传到容器镜像仓库时,最后一步是上传镜像的manifest文件,而镜像数据的存储在容器镜像仓库中是有延迟的,这种延迟与容器镜像仓库使用的存储介质有关,也就是说当容器镜像仓库发出镜像上传成功的notification的时候,镜像数据在容器镜像仓库中并不一定存储就绪,本方法为避免这种延迟对镜像多架构数据处理的影响,新增了manifest文件的检查重试机制,使用配置项checkManifestTimeout中设置的超时时间约束重试的时间与次数,如果超过设定的超时时间,则认为检查未通过,本次处理失败,并将所述镜像文件确定为异常镜像文件;若在规定的时间内镜像的manifest文件已经准备就绪,则说明检查通过,并则将所述镜像文件确定为目标镜像文件。
步骤S12:创建与所述目标镜像文件对应的第一索引文件。
可以理解的是,每个镜像版本的多CPU架构数据索引文件只存在一份,例如:上传一个nginx镜像,这个nginx镜像在容器镜像仓库中的多架构数据包含amd64、arm64两种CPU架构,如果当前上传的是mips64el架构,那么在创建当前镜像的多CPU架构数据的索引文件的时候,不能只包含当前架构,否则在上传到容器镜像仓库时,可能会造成当前镜像版本的amd64、arm64架构数据的丢失。为避免这种问题,本方法要求创建的镜像多CPU架构索引文件必须包含配置项archList支持的所有的CPU架构。
步骤S13:基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件。
本实施例中,此步骤的目的为检查索引文件中的每一项CPU架构指向的manifest文件在容器镜像仓库中是否存在,如果不存在,则将不存在的CPU架构数据删除,最终形成镜像多CPU架构的索引文件,并调用容器镜像仓库的RestApi接口将数据推送到容器镜像仓库,如果推送失败,则此镜像文件就会被确认为异常镜像文件。
本实施例中,所述的容器镜像数据处理方法,还可以包括:将未成功发送至容器镜像仓库的第二索引文件所对应的镜像文件确定为异常镜像文件;将所述异常镜像文件对应的镜像信息保存至预设异常文件中;所述镜像信息包括镜像名称、镜像版本号以及镜像哈希值;按照所述配置项中设定的异常镜像的扫描周期对所述预设异常文件中全部的所述镜像信息进行解析,然后触发创建所述第一索引文件与所述第二索引文件的流程;若所述异常镜像文件所对应的第二索引文件创建成功,则将所述第二索引文件通过预设交互接口发送至容器镜像仓库,并将当前所述异常镜像文件在所述预设异常文件中所对应的镜像信息进行删除。
可以理解的是,本发明奖未成功发送至容器镜像仓库的第二索引文件所对应的镜像文件与步骤11中描述的未通过manifest文件进行检查的镜像文件确定为异常镜像文件,在一种具体的实施方式中,这些异常镜像文件的镜像信息会被保存到一个“error-images”的文件中,该模块会根据配置文件中设定的errorImageJobPeriod参数周期性的扫描“error-images”文件并解析文件中的每个镜像的信息,然后对它们重复进行创建所述第一索引文件与所述第二索引文件的步骤,若某一异常镜像文件所对应的第二索引文件创建成功,则从“error-images”文件中清除该镜像,反之继续处理,直到成功。需要指出的是,在镜像多CPU架构数据的处理过程中难免会遇到因为其它原因处理失败的镜像,导致这些镜像在容器镜像仓库中的多架构数据丢失,为了尽量避免这种情况,本方案通过将异常镜像文件的镜像信息进行保存并定期扫描的方法,减少人为干预,实现自动化重新上传镜像的目的。
步骤S14:将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。
本实施例中所述的预设交互接口包括但不限于RestApi接口。
本实施例中,所述的容器镜像数据处理方法,还可以包括:若本次对接操作为首次对接操作,则获取容器镜像仓库中的历史镜像文件,并采用预设递归规则将容器镜像仓库中的历史镜像文件提取至预设镜像列表中;基于所述预设镜像列表与预设计算规则确定所述各历史镜像文件与各预设线程之间的映射关系;利用所述预设线程基于所述映射关系从当前所述预设线程所对应的所述各历史镜像文件中确定出目标镜像文件;
相应的,所述创建与所述目标镜像文件对应的第一索引文件,基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库,可以包括:利用所述预设线程创建与所述目标镜像文件对应的第一索引文件,并基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;利用所述预设线程通过预设交互接口将所述第二索引文件发送至容器镜像仓库。
需要指出的是,在容器镜像仓库首次对接本装置的时候,容器镜像仓库中已经存在了大量的镜像数据,所以本方法提出了要把容器镜像仓库中已经存在的所有镜像转化成本方案所提出的多CPU架构镜像数据并重新上传到容器镜像仓库。在一种具体实施方式中,可以采用递归的方式获取到容器镜像仓库中所有镜像版本文件,每次递归取100条数据,直到所有镜像版本文件都被取出并放到一个镜像列表中,然后根据镜像列表的总长度以及配置参数syncMaxPool,计算线程池的规模以及每个线程里面处理的镜像版本文件的数量,最后,每个线程负责把处理的镜像转化成镜像多CPU架构数据并推送到容器镜像仓库,在等待所有的线程处理结束后,输出存量数据处理结束标志end。
线程池规模计算过程如下:
当In<syncMaxPool时,
Figure BDA0003571077470000121
当In≥syncMaxPool时,Pooln=syncMaxPool;
其中,Pooln是线程池的规模,In是镜像列表的长度;
每个线程处理的镜像版本文件数量如下:
Tn=In/Pooln,Tn表示每个线程需要处理的镜像版本总数;
镜像列表中的镜像版本文件被均匀的分配到每个线程之后,剩余的镜像版本文件数量计算如下:
Tleft=In-Tn*Pooln,Tleft表示镜像列表中的镜像版本均匀的分配到每个线程之后,剩余的镜像版本总数;
每个线程处理镜像版本在镜像列表中的开始位置计算如下:
Tstart=Pooli*Tn,Tstart表示每个线程处理镜像版本在镜像列表中的开始位置,Pooli表示线程池中第i个线程;
每个线程处理镜像版本在镜像列表中的结束位置计算如下:
Tend=Pooli*Tn+Tn,Tend表示每个线程处理镜像版本在镜像列表中的结束位置;
当Pooli=Pooln-1的时候,其计算公式如下:
Tend=Tend+Tleft
本发明中所述的容器镜像数据处理装置按照功能划分也可划分为配置模块、多架构数据预处理模块、多架构数据生成模块、多架构数据自动推送模块、镜像漏扫模块以及存量数据处理模块。其中,所述配置模块用于在创建包含多种配置项的配置文件后,通过所述配置文件对所述容器镜像数据处理装置进行配置的模块;所述多架构数据预处理模块用于接收由容器镜像仓库发送的事件信息并确定目标镜像文件的模块;所述多架构数据生成模块用于创建与所述目标镜像文件对应的第一索引文件的模块;所述多架构数据自动推送模块用于基于所述第一索引文件创建第二索引文件,并将所述第二索引文件通过预设交互接口发送至容器镜像仓库的模块;所述镜像漏扫模块为用于处理异常镜像文件的模块;所述存量数据处理模块为用于处理历史镜像文件的模块。如图2所示为本申请提出的一种容器镜像数据处理装置的数据处理流程图,图中由用户通过预设的客户端将镜像文件上传至镜像仓库(即上述“容器镜像仓库”),在容器镜像数据处理装置接收到由镜像仓库发送的事件信息后,对所述镜像文件进行预处理,在预处理成功后将相应的镜像文件发送至多架构数据生成模块,最后在经过多架构数据自动推送模块将生成的索引文件推送至镜像仓库。在首次对接镜像仓库时,通过将镜像仓库中的存量数据放入存量数据处理模块,存量数据经过多线程处理之后,最终生成索引文件推送至镜像仓库。在多架构数据预处理模块、存量数据处理模块或多架构自动推送模块生成的错误镜像(即上述“异常镜像文件”)会进入镜像漏扫模块,并按照预设扫描周期将错误镜像放入多架构数据生成模块执行,右侧的配置管理模块用于使用包含多种配置项的配置文件对装置进行配置。
本实施例先获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件,然后创建与所述目标镜像文件对应的第一索引文件,基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,最后将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。这样一来,本实施例通过利用容器镜像数据处理装置结合配置文件各配置项的应用,基于事件驱动实现多CPU架构的索引文件的创建,并自动化推送至容器镜像仓库。对于用户端来说,用户无需关心镜像的相关数据制作以及推送,也无需考虑镜像数据索引文件的管理问题,用户还是按照之前的方式只需要开发自己的程序,并将构建的镜像推送到容器镜像仓库。本实施例还提出了对于异常镜像文件的确定方法与处理方法,减少了实际操作中的人工干预,整体提升了镜像文件上传的合理性,最终减少了用户端推送镜像中的繁琐过程,在大规模镜像的多架构数据的制作和推送的场景中有显著的效果。
图3为本申请实施例提供的一种具体的容器镜像数据处理流程图。参见图3所示,该方法包括:
步骤S21:获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件。
步骤S22:创建与所述目标镜像文件对应的且包含有所述配置项中所设定的本装置支持处理的全部镜像CPU架构的第一索引文件。
步骤S23:判断所述第一索引文件中的所述镜像CPU架构是否全部可用。
本实施例中,所述判断所述第一索引文件中的所述镜像CPU架构是否全部可用,可以包括:从所述第一索引文件中的所述全部镜像CPU架构中确定出当前的目标CPU架构;判断所述容器镜像仓库中是否存在与所述当前的目标CPU架构所对应的manifest文件;若所述容器镜像仓库中不存在与所述当前的目标CPU架构所对应的manifest文件,则将所述当前的目标CPU架构标记为不可用CPU架构;若所述容器镜像仓库中存在与所述当前的目标CPU架构所对应的manifest文件,则将所述当前的目标CPU架构标记为可用CPU架构,并基于所述第一索引文件中除已确定的不可用CPU架构与可用CPU架构以外的剩余镜像CPU架构,重新确定当前的目标CPU架构,并触发判断所述容器镜像仓库中是否存在与当前的所述目标CPU架构所对应的manifest文件的步骤;根据所述不可用CPU架构与可用CPU架构的标记情况确定所述第一索引文件中的所述镜像CPU架构是否全部可用。
可以理解的是,本步骤对创建的第一索引文件进行检查,本方法中要求创建的多CPU架构的第一索引文件中必须包含配置项archList所定义的各项CPU架构,但由于各项CPU架构所对应的manifest文件不一定全部存在,若某一项CPU架构所对应的manifest文件存在,则表示此架构可用,若某一项CPU架构所对应的manifest文件不存在,则表示此架构不可用。所以本步骤对第一索引文件中的所述镜像CPU架构是否全部可用的情况进行检查。
步骤S24:若所述第一索引文件中的所述镜像CPU架构全部可用,则将所述第一索引文件确定为第二索引文件。
可以理解的是,若所述第一索引文件中的所述镜像CPU架构全部可用,则可直接将所述第一索引文件确定为第二索引文件。
步骤S25:若所述第一索引文件中的所述镜像CPU架构并非全部可用,则从所述全部镜像CPU架构中确定出不可用CPU架构,并将所述第一索引文件中所述不可用CPU架构所对应的不可用架构信息进行删除,然后将所述不可用架构信息进行删除后的第一索引文件确定为第二索引文件。
可以理解的是,若所述第一索引文件中的所述镜像CPU架构并非全部可用,则把标记为不可用架构所对应的架构信息进行删除。
步骤S26:将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。
本实施例先获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件,创建与所述目标镜像文件对应的且包含有所述配置项中所设定的本装置支持处理的全部镜像CPU架构的第一索引文件,判断所述第一索引文件中的所述镜像CPU架构是否全部可用,若所述第一索引文件中的所述镜像CPU架构全部可用,则将所述第一索引文件确定为第二索引文件,若所述第一索引文件中的所述镜像CPU架构并非全部可用,则从所述全部镜像CPU架构中确定出不可用CPU架构,并将所述第一索引文件中所述不可用CPU架构所对应的不可用架构信息进行删除,然后将所述不可用架构信息进行删除后的第一索引文件确定为第二索引文件。这样一来,本实施例对于本方案中利用容器镜像数据处理装置创建第一索引文件与第二索引文件的过程进行详细展开,即对于第一索引文件中各项CPU架构所对应的manifest文件进行检查,最终形成第二索引文件的过程,最终本发明可降低开发者或者运维人员的学习成本与时间成本,降低对多CPU架构镜像数据的管理成本,使混合架构的云计算场景中的容器镜像多架构数据的管理变得十分简单。
参见图4所示,本申请实施例公开了一种容器镜像数据处理装置,具体可以包括:
镜像文件确定模块11,用于获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件;
第一索引文件创建模块12,用于创建与所述目标镜像文件对应的第一索引文件;
第二索引文件创建模块13,用于基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;
文件发送模块14,用于将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。
本方法先获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件,然后创建与所述目标镜像文件对应的第一索引文件,基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,最后将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。这样一来,本实施例通过利用容器镜像数据处理装置,结合配置文件各配置项的应用,基于事件驱动实现多CPU架构的索引文件的创建过程,并自动化推送至容器镜像仓库。对于用户端来说,用户无需关心镜像的相关数据制作以及推送,也无需考虑镜像数据索引文件的管理问题,用户还是按照之前的方式只需要开发自己的程序,并将构建的镜像推送到容器镜像仓库。本实施例还提出了对于异常镜像文件的确定方法与处理方法,减少了实际操作中的人工干预,整体提升了镜像文件上传的合理性,最终减少了用户端推送镜像中的繁琐过程,在大规模镜像的多架构数据的制作和推送的场景中有显著的效果。
进一步的,本申请实施例还公开了一种电子设备,图5是根据示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、显示屏24、输入输出接口25、通信接口26和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的容器镜像数据处理方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口26能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的容器镜像数据处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-OnlyMemory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述公开的容器镜像数据处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的容器镜像数据处理方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种容器镜像数据处理方法,其特征在于,应用于与容器镜像仓库进行对接的容器镜像数据处理装置,包括:
获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件;
创建与所述目标镜像文件对应的第一索引文件;
基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;
将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。
2.根据权利要求1所述的容器镜像数据处理方法,其特征在于,所述获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件之前,还包括:
创建包含多种配置项的配置文件,并通过预设配置参数获取接口获取用于配置所述配置项的配置参数,以便利用所述配置文件对所述容器镜像数据处理装置进行配置;其中,所述配置项包括:用于与容器镜像仓库进行对接的配置项、用于设定本装置支持处理的镜像CPU架构的配置项、用于设定manifest文件的检查超时时间的配置项、用于设定异常镜像的扫描周期的配置项、用于设定异常镜像的输出路径的配置项以及用于设定线程池最大线程数的配置项中的任意一种或多种的组合。
3.根据权利要求1所述的容器镜像数据处理方法,其特征在于,所述基于所述事件信息确定符合预设文件处理条件的目标镜像文件,包括:
判断所述事件信息是否为预设镜像推送事件;
若所述事件信息为预设镜像推送事件,则获取所述事件信息所对应的镜像文件,并判断所述镜像文件的元数据类型是否为预设元数据类型;
若所述镜像文件的元数据类型为预设元数据类型,则获取所述事件信息所对应的镜像文件的镜像名称,并基于所述镜像名称确定镜像文件的第一架构类型;所述镜像名称为由客户端设定的且包含有所述镜像文件的第一架构类型的名称;
利用预设类型识别方法对所述镜像文件的镜像架构类型进行识别,以获取所述镜像文件的第二架构类型;
判断所述第一架构类型与所述第二架构类型是否一致;
若所述第一架构类型与所述第二架构类型一致,则确定所述镜像文件的目标架构类型,并判断所述目标架构类型是否为预设架构类型;
若所述目标架构类型为预设架构类型,则按照预设检查重试机制对所述容器镜像仓库中与所述镜像文件对应的manifest文件进行检查;
若检查未通过,则将所述镜像文件确定为异常镜像文件;
若检查通过,则将所述镜像文件确定为目标镜像文件。
4.根据权利要求1所述的容器镜像数据处理方法,其特征在于,所述创建与所述目标镜像文件对应的第一索引文件,包括:
创建与所述目标镜像文件对应的且包含有所述配置项中所设定的本装置支持处理的全部镜像CPU架构的第一索引文件;
相应的,所述基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,包括:
判断所述第一索引文件中的所述镜像CPU架构是否全部可用;
若所述第一索引文件中的所述镜像CPU架构全部可用,则将所述第一索引文件确定为第二索引文件;
若所述第一索引文件中的所述镜像CPU架构并非全部可用,则从所述全部镜像CPU架构中确定出不可用CPU架构,并将所述第一索引文件中所述不可用CPU架构所对应的不可用架构信息进行删除,然后将所述不可用架构信息进行删除后的第一索引文件确定为第二索引文件。
5.根据权利要求4所述的容器镜像数据处理方法,其特征在于,所述判断所述第一索引文件中的所述镜像CPU架构是否全部可用,包括:
从所述第一索引文件中的所述全部镜像CPU架构中确定出当前的目标CPU架构;
判断所述容器镜像仓库中是否存在与所述当前的目标CPU架构所对应的manifest文件;
若所述容器镜像仓库中不存在与所述当前的目标CPU架构所对应的manifest文件,则将所述当前的目标CPU架构标记为不可用CPU架构;
若所述容器镜像仓库中存在与所述当前的目标CPU架构所对应的manifest文件,则将所述当前的目标CPU架构标记为可用CPU架构,并基于所述第一索引文件中除已确定的不可用CPU架构与可用CPU架构以外的剩余镜像CPU架构,重新确定当前的目标CPU架构,并触发判断所述容器镜像仓库中是否存在与当前的所述目标CPU架构所对应的manifest文件的步骤;
根据所述不可用CPU架构与可用CPU架构的标记情况确定所述第一索引文件中的所述镜像CPU架构是否全部可用。
6.根据权利要求1所述的容器镜像数据处理方法,其特征在于,还包括:
若本次对接操作为首次对接操作,则获取容器镜像仓库中的历史镜像文件,并采用预设递归规则将容器镜像仓库中的历史镜像文件提取至预设镜像列表中;
基于所述预设镜像列表与预设计算规则确定所述各历史镜像文件与各预设线程之间的映射关系;
利用所述预设线程基于所述映射关系从当前所述预设线程所对应的所述各历史镜像文件中确定出目标镜像文件;
相应的,所述创建与所述目标镜像文件对应的第一索引文件,基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件,将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库,包括:
利用所述预设线程创建与所述目标镜像文件对应的第一索引文件,并基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;
利用所述预设线程通过预设交互接口将所述第二索引文件发送至容器镜像仓库。
7.根据权利要求1至6任一项所述的容器镜像数据处理方法,其特征在于,还包括:
将未成功发送至容器镜像仓库的第二索引文件所对应的镜像文件确定为异常镜像文件;
将所述异常镜像文件对应的镜像信息保存至预设异常文件中;所述镜像信息包括镜像名称、镜像版本号以及镜像哈希值;
按照所述配置项中设定的异常镜像的扫描周期对所述预设异常文件中全部的所述镜像信息进行解析,然后触发创建所述第一索引文件与所述第二索引文件的流程;
若所述异常镜像文件所对应的第二索引文件创建成功,则将所述第二索引文件通过预设交互接口发送至容器镜像仓库,并将当前所述异常镜像文件在所述预设异常文件中所对应的镜像信息进行删除。
8.一种容器镜像数据处理装置,其特征在于,包括:
镜像文件确定模块,用于获取容器镜像仓库通过预设交互接口发送的用于表征镜像文件上传成功的事件信息,并基于所述事件信息确定符合预设文件处理条件的目标镜像文件;
第一索引文件创建模块,用于创建与所述目标镜像文件对应的第一索引文件;
第二索引文件创建模块,用于基于预设检查处理方法对所述第一索引文件中的文件信息进行处理,以得到与所述目标镜像文件对应的第二索引文件;
文件发送模块,用于将所述第二索引文件通过预设交互接口发送至所述容器镜像仓库。
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的容器镜像数据处理方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的容器镜像数据处理方法。
CN202210319317.6A 2022-03-29 2022-03-29 一种容器镜像数据处理方法、装置、设备及介质 Pending CN114706658A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210319317.6A CN114706658A (zh) 2022-03-29 2022-03-29 一种容器镜像数据处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210319317.6A CN114706658A (zh) 2022-03-29 2022-03-29 一种容器镜像数据处理方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114706658A true CN114706658A (zh) 2022-07-05

Family

ID=82170059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210319317.6A Pending CN114706658A (zh) 2022-03-29 2022-03-29 一种容器镜像数据处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114706658A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302210A (zh) * 2023-05-17 2023-06-23 阿里云计算有限公司 一种镜像文件的导入方法、装置、电子设备及存储介质
CN117349035A (zh) * 2023-12-05 2024-01-05 中电云计算技术有限公司 工作负载的调度方法、装置、设备及存储介质
CN117369953A (zh) * 2023-12-08 2024-01-09 中电云计算技术有限公司 镜像同步方法、装置、设备及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116302210A (zh) * 2023-05-17 2023-06-23 阿里云计算有限公司 一种镜像文件的导入方法、装置、电子设备及存储介质
CN116302210B (zh) * 2023-05-17 2023-08-04 阿里云计算有限公司 一种镜像文件的导入方法、装置、电子设备及存储介质
CN117349035A (zh) * 2023-12-05 2024-01-05 中电云计算技术有限公司 工作负载的调度方法、装置、设备及存储介质
CN117349035B (zh) * 2023-12-05 2024-03-15 中电云计算技术有限公司 工作负载的调度方法、装置、设备及存储介质
CN117369953A (zh) * 2023-12-08 2024-01-09 中电云计算技术有限公司 镜像同步方法、装置、设备及存储介质
CN117369953B (zh) * 2023-12-08 2024-03-15 中电云计算技术有限公司 镜像同步方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN114706658A (zh) 一种容器镜像数据处理方法、装置、设备及介质
CN108196915B (zh) 基于应用容器引擎的代码处理方法、设备及存储介质
EP3018579B1 (en) Client application with embedded server
CN114286988B (zh) 处理数据库系统的数据
EP3522005A1 (en) Method and apparatus for constructing mirror image
CN111159099A (zh) 在线数据生成方法、装置、电子设备和存储介质
CN110968478A (zh) 日志采集方法、服务器及计算机存储介质
CN111796855B (zh) 一种增量版本更新方法、装置、存储介质及计算机设备
CN110704025A (zh) 编码规范工具的生成方法和装置、存储介质、电子设备
CN113157658B (zh) 客户端日志收集分发方法、装置及计算机设备
CN110958293A (zh) 基于云服务器的文件传输方法、系统、服务器及存储介质
US8245182B2 (en) Class selectable design sharing
CN116610343A (zh) 一种服务器固件升级方法、装置、设备及存储介质
CN111338644A (zh) 任务脚本部署方法及系统
US20120072474A1 (en) Device management apparatus and device management method
CN115878128A (zh) 一种应用程序的部署方法和装置
CN115629784A (zh) 更新机台文件的方法、系统、设备及计算机可读存储介质
CN113595762B (zh) 一种网卡配置的保存方法及装置
CN115687715A (zh) 项目目录下载方法及相关装置
CN112395194B (zh) 一种接入测试平台的方法和装置
CN115904615A (zh) K8s容器内的文件管理方法和装置
CN111596933B (zh) 文件处理方法、装置、电子设备及计算机可读存储介质
CN111273940B (zh) 将程序文件上传至代码仓库的方法及装置
CN114416163A (zh) 一种制品管理方法、系统、存储介质和电子设备
CN113110913B (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