CN116302210B - 一种镜像文件的导入方法、装置、电子设备及存储介质 - Google Patents
一种镜像文件的导入方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116302210B CN116302210B CN202310553898.4A CN202310553898A CN116302210B CN 116302210 B CN116302210 B CN 116302210B CN 202310553898 A CN202310553898 A CN 202310553898A CN 116302210 B CN116302210 B CN 116302210B
- Authority
- CN
- China
- Prior art keywords
- file
- image
- container
- container manifest
- image file
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 21
- 238000012986 modification Methods 0.000 claims description 14
- 230000004048 modification Effects 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 230000008676 import Effects 0.000 abstract description 12
- 238000001514 detection method Methods 0.000 abstract description 7
- 238000012360 testing method Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000001788 irregular Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种镜像文件的导入方法、装置、电子设备及存储介质,方法包括:利用镜像文件生成容器清单文件,容器清单文件包含所述镜像文件的描述信息;基于所述容器清单文件,将所述镜像文件和所述容器清单文件存储在预设镜像仓库的工作目录下;根据所述容器清单文件修改所述预设镜像仓库的数据库。通过为镜像文件生成包含镜像描述信息的容器清单文件,并基于容器清单文件修改镜像仓库的工作目录,以将镜像文件和容器清单文件放入镜像仓库的工作目录下,而后再根据容器清单文件修改镜像仓库的数据库,实现镜像文件直接导入镜像仓库,并绕开了容器镜像管理程序导入镜像文件时进行的检测过程,从而可以满足非常规的镜像文件导入镜像仓库中的需求。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种镜像文件的导入方法、装置、电子设备及存储介质。
背景技术
在对运行容器相关的程序进行测试时,容器的镜像文件是待测试程序的重要输入数据之一,并且用来测试程序的镜像文件属于非常规镜像,其中会包含用于实现测试目标的错误数据或者不完整数据。为了方便用户访问和下载镜像文件,通常是使用镜像仓库来管理镜像文件,因此需要事先将镜像文件导入镜像仓库。
目前,镜像文件的导入是使用容器镜像管理程序来实现,例如,通过docker容器镜像管理程序中的push命令可以将某一镜像文件导入到镜像仓库。
然而,容器镜像管理程序在导入镜像文件时,会对镜像文件的完整性和正确性进行检测,对于包含错误数据或者不完整数据的镜像文件是无法通过该检测过程的,因此使用容器镜像管理程序无法实现这种非常规镜像文件的导入。
发明内容
本申请的目的是针对上述现有技术的不足提出的一种镜像文件的导入方法、装置、电子设备及存储介质,该目的是通过以下技术方案实现的。
本申请的第一方面提出了一种镜像文件的导入方法,所述方法包括:
利用已生成的镜像文件生成容器清单文件,所述容器清单文件包含所述镜像文件的描述信息;
基于所述容器清单文件,将所述镜像文件和所述容器清单文件存储在预设镜像仓库的工作目录下;
根据所述容器清单文件修改所述预设镜像仓库的数据库。
本申请的第二方面提出了一种镜像文件的导入装置,所述装置包括:
清单生成模块,用于利用已生成的镜像文件生成容器清单文件,所述容器清单文件包含所述镜像文件的描述信息;
仓库目录修改模块,用于基于所述容器清单文件,将所述镜像文件和所述容器清单文件存储在预设镜像仓库的工作目录下;
数据库修改模块,用于根据所述容器清单文件修改所述预设镜像仓库的数据库。
本申请的第三方面提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序以实现如上述第一方面所述方法的步骤。
本申请的第四方面提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行以实现如上述第一方面所述方法的步骤。
基于上述第一方面和第二方面所述的镜像文件的导入方法及装置,本申请至少具有如下有益效果或优点:
通过为镜像文件生成包含镜像描述信息的容器清单文件,并基于容器清单文件修改镜像仓库的工作目录,以将镜像文件和容器清单文件放入镜像仓库的工作目录下,而后再根据容器清单文件修改镜像仓库的数据库,实现镜像文件直接导入镜像仓库,并绕开了容器镜像管理程序导入镜像文件时进行的检测过程,从而可以满足非常规的镜像文件导入镜像仓库中的需求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为根据一示例性实施例示出的一种镜像文件的导入方法的实施例流程图;
图2为根据一示例性实施例示出的镜像仓库工作目录的数据文件索引目录示意图;
图3为根据一示例性实施例示出的镜像仓库工作目录的存储镜像组织目录示意图;
图4为根据一示例性实施例示出的一种镜像文件的导入装置的结构示意图;
图5为根据一示例性实施例示出的一种电子设备的硬件结构示意图;
图6为根据一示例性实施例示出的一种存储介质的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
目前常用模糊测试工具对运行容器相关的程序进行测试,例如对容器的资源隔离模块、容器管理程序、容器运行时和容器镜像服务系统等进行测试,模糊测试工具使用的是镜像仓库作为媒介,即模糊测试工具从镜像仓库下载用于测试使用的镜像文件,并将镜像文件提供给待测试程序,使待测试程序触发相关操作,从而发现可能的程序错误。
但是,模糊测试工具需要向待测试程序提供的是包含错误数据或者不完整数据的非常规镜像文件,而容器镜像管理程序在导入镜像文件时,本身会对镜像文件的完整性和正确性进行检测,这样非常规镜像文件就无法通过容器镜像管理程序导入镜像仓库,从而也就无法实现对运行容器相关的程序的测试。
为了解决上述技术问题,本申请提出一种镜像文件导入方法,以绕过导入镜像文件时的镜像检测过程,即通过为镜像文件生成包含镜像描述信息的容器清单文件,并基于容器清单文件修改镜像仓库的工作目录,以将镜像文件和容器清单文件放入镜像仓库的工作目录下,而后再根据容器清单文件修改镜像仓库的数据库,从而实现镜像文件直接导入镜像仓库,并绕开容器镜像管理程序导入镜像文件时的检测过程,从而可以满足非常规镜像文件导入镜像仓库的需求。
为了使本领域技术人员更好的理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图1为根据一示例性实施例示出的一种镜像文件的导入方法的实施例流程图,包括如下步骤:
步骤101:利用已生成的镜像文件生成容器清单文件,该容器清单文件包含镜像文件的描述信息。
其中,镜像文件也即容器镜像,用于打包应用程序及其依赖环境信息。通常一个容器镜像包含三种类型的数据文件:配置文件、元数据文件及若干个普通数据文件,因此镜像文件包含有多个数据文件。
进一步地,以RAFS(Registry Acceleration File System,注册表加速文件系统)格式的容器镜像为例,配置文件是一种JSON格式文件,其记录的是容器配置信息;元数据文件记录的是镜像文件的元数据信息,并且元数据文件是压缩过的数据文件;普通数据文件记录的是镜像文件的数据信息。
在一示例性应用场景中,该镜像文件可以是由模糊测试工具根据测试目标生成的。可以理解的是,镜像文件包含的至少一个数据文件中记录有错误数据或者不完整数据,因此用于测试程序的镜像文件可以称为非常规镜像文件。
在一可选实施方式中,容器清单文件在镜像仓库中是作为容器镜像的物料清单,其包含的镜像文件描述信息需要对镜像文件中的各个数据文件均进行描述,基于此,容器清单文件的生成过程可以是为该镜像文件中的各个数据文件分别生成校验和,并利用各个数据文件的校验和与文件大小生成容器清单文件。
其中,数据文件的校验和是根据数据文件中记录的具体数据生成的一串固定长度的字符串,因此校验和具有唯一性,其可以保证数据文件中数据的一致性,因为只要数据文件中的数据被修改,那么该数据文件的校验和就会发生变化。由此可见,通过使用各个数据文件的校验与和文件大小可以很好的对镜像文件进行描述。
进一步地,由于元数据文件是压缩过的数据文件,因此在生成校验和时,除了为压缩过的元数据文件生成校验和之外,还可以为压缩前的元数据文件生成一个校验和,以进一步确保文件数据的一致性。
在一具体例子中,数据文件的校验和可以使用sha256sum命令来生成。
以预设镜像仓库使用Harbor镜像仓库为例,容器清单文件包含四部分:文件头、配置、数据列表和注释。
具体地,文件头部分包含‘schemaVersion’和‘mediaType’两个字段,这两个字段为固定取值,如果将容器清单文件定义为manifest,对于RAFS格式的容器镜像,固定取值为‘schemaVersion’:2, ‘mediaType’:application/vnd.oci.image.manifest.v1+json。
配置部分填充的是配置文件的校验和与文件大小,如果配置文件定义为config,校验和为digest,文件大小为size,配置部分具体内容为:‘config’:{
‘mediaType':application/vnd.oci.image.config.v1+json,
‘digest':[configdigest],
‘size':[configfilesize],
}
数据列表部分填充的是元数据文件的校验和与文件大小、以及普通数据文件的校验和与文件大小,如果普通数据文件定义为blob,元数据文件定义为bootstrap,校验和为digest,文件大小为size,则数据列表部分具体内容为:
‘mediaType':application/vnd.oci.image.layer.nydus.blob.v1,
‘digest':[blobdigest],
‘size':[blobsize],
‘annotations':{
‘containerd.io/snapshot/nydus-blob':‘true'
}
‘mediaType':application/vnd.oci.image.layer.v1.tar+gzip,
‘digest':[bootstrapdigest],
‘size':[bootstrapsize],
‘annotations':{
‘containerd.io/snapshot/nydus-blob-ids':[blobdigestlist],
‘containerd.io/snapshot/nydus-bootstrap':‘true',
‘containerd.io/snapshot/nydus-fs-version':‘6'
}
注释部分为固定取值,对于使用Nydus模糊测试工具生成RAFS格式容器镜像,固定取值为
‘annotations':{
io.goharbor.artifact.v1alpha1.acceleration.driver.name: ‘nydus',
io.goharbor.artifact.v1alpha1.acceleration.source.digest: ‘'。
步骤102:基于该容器清单文件,将镜像文件和容器清单文件存储在预设镜像仓库的工作目录下。
其中,预设镜像仓库的工作目录是用来存储和访问容器镜像的文件目录,可以为基于容器型应用开发提供支持,方便开发人员创建和交付云原生应用。
以Harbor镜像仓库为例,其工作目录包括两部分,一部分是用来保存容器镜像各种数据文件的文件目录,另一部分是根据容器镜像和镜像标签建立文件索引的文件目录。
可选的,预设镜像仓库可以是一个本地私有的镜像仓库,也即专用来为测试容器相关程序提供非常规镜像文件,以避免使用公有镜像仓库管理非常规镜像文件带来的风险。
在一可选实施例中,可以将镜像文件和容器清单文件存储在预设镜像仓库的工作目录下,以及在该工作目录中生成该镜像文件的校验文件和该容器清单文件的校验文件,从而按照镜像仓库工作目录的格式要求,将与镜像文件相关的容器清单文件和镜像文件本身直接放入镜像仓库,实现镜像仓库的修改,绕过了使用镜像管理程序的检测过程。
其中,校验文件中记录有相应文件的索引信息,例如,镜像文件的校验文件记录有镜像文件的索引信息,容器清单文件的校验文件记录有容器清单文件的索引信息。
在一可选具体实施方式中,针对将镜像文件和容器清单文件存储在预设镜像仓库的工作目录下的过程,可以利用容器清单文件记录的镜像文件中各个数据文件的校验和,在工作目录中为各个数据文件分别建立一级索引文件夹和二级索引文件夹,而后将镜像文件的各个数据文件添加至相应的二级索引文件夹中,以及为容器清单文件生成校验和,并利用该容器清单文件的校验和,在工作目录中为该容器清单文件建立一级索引文件夹和二级索引文件夹,而后将该容器清单文件添加至容器清单文件的二级索引文件夹中。这样在访问相应文件时通过获取到相应文件的校验和便可建立起文件的访问路径,并且通过在镜像仓库建立两级索引文件夹存放镜像文件的各个数据文件和容器清单文件的方式,可以提升文件存储的安全性。
其中,一级索引文件夹包含二级索引文件夹,也即一级索引文件夹属于二级索引文件夹的上级文件夹。
具体地,可以通过划分校验和的方式定义为一级索引文件夹的名称和二级索引文件夹的名称,比如将校验和的前两位作为一级索引文件夹的名称,将完整校验和作为二级索引文件夹的名称。例如,校验和为d60ba784,则一级索引文件夹的名称为d6,二级索引文件夹的名称为d60ba784。
在一可选具体实施方式中,针对在工作目录中生成该镜像文件的校验文件和该容器清单文件的校验文件的过程,可以在工作目录中为镜像文件创建一个文件夹,然后利用容器清单文件记录的镜像文件中各个数据文件的校验和,在该文件夹下创建镜像文件的校验文件,并利用容器清单文件的校验和,在该文件夹下创建容器清单文件的校验文件。通过将一个容器镜像的相关文件统一放在工作目录的一个文件夹中,使得对容器镜像的管理更加简单。
其中,由于文件的校验和具有唯一性,因此可以使用相应的校验和作为校验文件中记录的索引信息。
进一步地,通常容器镜像具有镜像标签,每次修改后的容器镜像,镜像标签可以一样也可以不一样,为了将容器镜像的修改记录放入镜像仓库便于后续查询,因此还可以在该文件夹下为镜像文件创建标签文件夹,而后将容器清单文件的校验文件作为当前版本容器清单文件的索引添加至标签文件夹中。
当然,如果当前导入的容器镜像是修改版本的容器镜像,那么在将容器清单文件的校验文件作为当前版本容器清单文件的索引添加至标签文件夹中的同时,标签文件夹中之前放入的容器清单文件的校验文件是作为历史版本的索引仍然放在标签文价夹中。
基于上述对镜像仓库的工作目录的整个修改过程,下面以Harbor镜像仓库为例介绍整个修改过程,首先将工作目录中用来保存容器镜像各种数据文件的文件目录定义为blobs文件目录,另一部分文件目录定义为repositories文件目录。
参见图2所示的blobs文件目录修改过程,首先最外层是blobs文件夹,在blobs文件夹下有sha256文件夹,在sha256文件夹下放入为所有数据文件(包括镜像文件中的各个数据文件和容器清单文件)建立的一级索引文件夹,并且如果不同数据文件的一级索引文件夹的名称相同,则可以将不同数据文件的一级索引文件夹合并,并将为不同数据文件分别建立的二级索引文件夹均放入一级索引文件夹中,然后将所有数据文件的文件名称修改为data后放入相应的二级索引文件夹中。
参见图3所示的repositories文件目录修改过程,首先最外层是repositories文件夹,在repositories文件夹下有library文件夹,在library文件夹下为每个容器镜像单独创建一个image文件夹,如image1文件夹、image2文件夹等,并且在image文件夹下包含_layers\sha256\digest\link的文件路径,每个link文件即为一个校验文件,具体在_layers文件夹下包含镜像文件中每个数据文件的校验文件和容器清单文件的校验文件;在image文件夹下还包含_manifests文件夹,且在_manifests文件夹下包含revisions\sha256\digest\link的文件路径,每个link文件即为一个容器清单文件的校验文件,不同link文件是不同版本容器清单文件的校验文件,此外在_manifests文件夹下还包含tags文件夹,在tags文件夹下为每个镜像标签创建有一个标签文件夹,如tag1文件夹、tag2文件夹等,在标签文件夹下放入属于同一镜像标签的不同修改版本的容器清单文件的校验文件,具体地,在current文件夹中放入当前版本容器清单文件的校验文件,在index\sha256\digest\link的文件路径放历史版本容器清单文件的校验文件。
步骤103:根据该容器清单文件修改预设镜像仓库的数据库。
其中,数据库中的记录信息用于访问和下载相应的容器镜像。
在一可选具体实施方式中,可以获取镜像文件的基本信息,然后将该基本信息和容器清单文件中记录的镜像文件中各个数据文件的校验和插入该预设镜像仓库的数据库中。
其中,镜像文件的基本信息可以包括镜像名称、镜像的项目名、镜像文件的总文件大小等。
以Harbor镜像仓库为例,Harbor启动后会启动若干个本地数据库,通过用户名和密码访问本地数据库,并修改repository数据库中的数据,包括以下数据表:artifact表,artifact_blob表,blob表,project_blob表。
具体地,在artifact表中插入镜像文件的基本信息与容器清单文件的校验和之间的映射关系;在artifact_blob表中插入容器清单文件的校验和与镜像文件中各个数据文件的校验和之间的映射关系;在blob表中插入容器清单文件的校验和与相应文件大小之间的映射关系,以及插入镜像文件中各个数据文件的校验和与相应文件大小之间的映射关系;在project_blob表中插入blob表新插入数据的记录id与镜像项目名之间的映射关系。
需要说明的是,在执行步骤103之后,由于容器镜像已经导入镜像仓库,因此可以根据预设镜像仓库中数据库的记录,从该预设镜像仓库中下载镜像文件,而后将该镜像文件输入待测试程序,获取该待测试程序执行该镜像文件的输出结果,也即测试结果。
至此,完成上述图1所示的镜像文件的导入流程,通过为镜像文件生成包含镜像描述信息的容器清单文件,并基于容器清单文件修改镜像仓库的工作目录,以将镜像文件和容器清单文件放入镜像仓库的工作目录下,而后再根据容器清单文件修改镜像仓库的数据库,从而实现镜像文件直接导入镜像仓库,并绕开容器镜像管理程序导入镜像文件时的检测过程,从而可以满足非常规镜像文件导入镜像仓库的需求。
本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
与前述镜像文件的导入方法的实施例相对应,本申请还提供了镜像文件的导入装置的实施例。
图4为根据一示例性实施例示出的一种镜像文件的导入装置的结构示意图,该装置用于执行上述任一实施例提供的镜像文件的导入方法,如图4所示,该镜像文件的导入装置包括:
清单生成模块410,用于利用已生成的镜像文件生成容器清单文件,所述容器清单文件包含所述镜像文件的描述信息;
仓库目录修改模块420,用于基于所述容器清单文件,将所述镜像文件和所述容器清单文件存储在预设镜像仓库的工作目录下;
数据库修改模块430,用于根据所述容器清单文件修改所述预设镜像仓库的数据库。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施方式还提供一种与前述实施方式所提供的镜像文件的导入方法对应的电子设备,以执行上述镜像文件的导入方法。
图5为根据一示例性实施例示出的一种电子设备的硬件结构图,该电子设备包括:通信接口601、处理器602、存储器603和总线604;其中,通信接口601、处理器602和存储器603通过总线604完成相互间的通信。处理器602通过读取并执行存储器603中与镜像文件的导入方法的控制逻辑对应的机器可执行指令,可执行上文描述的镜像文件的导入方法,该方法的具体内容参见上述实施例,此处不再累述。
本申请中提到的存储器603可以是任何电子、磁性、光学或其它物理存储装置,可以包含存储信息,如可执行指令、数据等等。具体地,存储器603可以是RAM(Random AccessMemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。通过至少一个通信接口601(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线604可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器603用于存储程序,所述处理器602在接收到执行指令后,执行所述程序。
处理器602可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器602可以是通用处理器,包括网络处理器(Network Processor,简称NP)、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
本申请实施例提供的电子设备与本申请实施例提供的镜像文件的导入方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的镜像文件的导入方法对应的计算机可读存储介质,请参考图6所示,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的镜像文件的导入方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的镜像文件的导入方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (9)
1.一种镜像文件的导入方法,其特征在于,所述方法包括:
利用已生成的镜像文件生成容器清单文件,所述容器清单文件包含所述镜像文件的描述信息;
基于所述容器清单文件,将所述镜像文件和所述容器清单文件存储在预设镜像仓库的工作目录下;
根据所述容器清单文件修改所述预设镜像仓库的数据库;
其中,所述基于所述容器清单文件,将所述镜像文件和所述容器清单文件存储在预设镜像仓库的工作目录下,包括:将所述镜像文件和所述容器清单文件存储在所述工作目录下;在所述工作目录中生成所述镜像文件的校验文件和所述容器清单文件的校验文件;
所述在所述工作目录中生成所述镜像文件的校验文件和所述容器清单文件的校验文件,包括:
在所述工作目录中为所述镜像文件创建一个文件夹;利用所述容器清单文件记录的所述镜像文件中各个数据文件的校验和,在所述文件夹下创建所述镜像文件的校验文件;利用所述容器清单文件的校验和,在所述文件夹下创建所述容器清单文件的校验文件。
2.根据权利要求1所述的方法,其特征在于,所述将所述镜像文件和所述容器清单文件存储在所述工作目录下,包括:
利用所述容器清单文件记录的所述镜像文件中各个数据文件的校验和,在所述工作目录中为各个数据文件分别建立一级索引文件夹和二级索引文件夹;
将所述镜像文件的各个数据文件添加至相应的二级索引文件夹中;
为所述容器清单文件生成校验和,利用所述容器清单文件的校验和,在所述工作目录中为所述容器清单文件建立一级索引文件夹和二级索引文件夹;
将所述容器清单文件添加至所述容器清单文件的二级索引文件夹中;
其中,在所述工作目录中一级索引文件夹包含二级索引文件夹。
3.根据权利要求1所述的方法,其特征在于,在所述工作目录中为所述镜像文件创建一个文件夹之后,所述方法还包括:
在所述文件夹下为所述镜像文件创建标签文件夹;
将所述容器清单文件的校验文件作为当前版本容器清单文件的索引添加至所述标签文件夹中。
4.根据权利要求1所述的方法,其特征在于,所述利用已生成的镜像文件生成容器清单文件,包括:
为所述镜像文件中的各个数据文件分别生成校验和;
利用各个数据文件的校验和与文件大小生成容器清单文件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述容器清单文件修改所述预设镜像仓库的数据库,包括:
获取所述镜像文件的基本信息;
将所述基本信息和所述容器清单文件中记录的所述镜像文件中各个数据文件的校验和插入所述预设镜像仓库的数据库中。
6.根据权利要求1-5任一项所述的方法,其特征在于,在根据所述容器清单文件修改所述预设镜像仓库的数据库之后,所述方法还包括:
根据所述数据库的记录,从所述预设镜像仓库中下载所述镜像文件;
将所述镜像文件输入待测试程序,获取所述待测试程序执行所述镜像文件的输出结果。
7.一种镜像文件的导入装置,其特征在于,所述装置包括:
清单生成模块,用于利用已生成的镜像文件生成容器清单文件,所述容器清单文件包含所述镜像文件的描述信息;
仓库目录修改模块,用于基于所述容器清单文件,将所述镜像文件和所述容器清单文件存储在预设镜像仓库的工作目录下;
数据库修改模块,用于根据所述容器清单文件修改所述预设镜像仓库的数据库;
其中,所述仓库目录修改模块,具体用于将所述镜像文件和所述容器清单文件存储在所述工作目录下;在所述工作目录中生成所述镜像文件的校验文件和所述容器清单文件的校验文件;
所述仓库目录修改模块,具体用于在所述工作目录中生成所述镜像文件的校验文件和所述容器清单文件的校验文件的过程中,在所述工作目录中为所述镜像文件创建一个文件夹;利用所述容器清单文件记录的所述镜像文件中各个数据文件的校验和,在所述文件夹下创建所述镜像文件的校验文件;利用所述容器清单文件的校验和,在所述文件夹下创建所述容器清单文件的校验文件。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序以实现如权利要求1-6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行以实现如权利要求1-6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310553898.4A CN116302210B (zh) | 2023-05-17 | 2023-05-17 | 一种镜像文件的导入方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310553898.4A CN116302210B (zh) | 2023-05-17 | 2023-05-17 | 一种镜像文件的导入方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116302210A CN116302210A (zh) | 2023-06-23 |
CN116302210B true CN116302210B (zh) | 2023-08-04 |
Family
ID=86794503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310553898.4A Active CN116302210B (zh) | 2023-05-17 | 2023-05-17 | 一种镜像文件的导入方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302210B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116954831B (zh) * | 2023-09-20 | 2023-11-28 | 中国电子科技集团公司第十五研究所 | 基于装配文件生成容器镜像包的方法及系统 |
CN117827367A (zh) * | 2023-12-12 | 2024-04-05 | 天翼云科技有限公司 | 一种用于容器镜像延迟拉取的toc结构、系统及方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427322A (zh) * | 2019-07-29 | 2019-11-08 | 国家电网有限公司 | 一种针对业务系统容器镜像的动态安全渗透测试方法、装置及系统 |
CN111629058A (zh) * | 2020-05-27 | 2020-09-04 | 广东浪潮大数据研究有限公司 | 一种镜像上传方法、装置、系统和后端设备 |
CN112130869A (zh) * | 2020-09-11 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种ai平台镜像处理的方法和装置 |
CN112395042A (zh) * | 2020-10-27 | 2021-02-23 | 国电南瑞科技股份有限公司 | 一种面向业务容器镜像进行安全扫描的方法和装置 |
CN112597244A (zh) * | 2020-12-23 | 2021-04-02 | 浙江中控技术股份有限公司 | 一种数据同步方法、装置及电子设备 |
CN113342745A (zh) * | 2021-07-06 | 2021-09-03 | 中国光大银行股份有限公司 | 一种镜像文件的校验方法、装置、电子设备及存储介质 |
CN114706658A (zh) * | 2022-03-29 | 2022-07-05 | 浪潮云信息技术股份公司 | 一种容器镜像数据处理方法、装置、设备及介质 |
CN114840225A (zh) * | 2022-04-26 | 2022-08-02 | 光大科技有限公司 | 一种应用部署方法、装置、存储介质及电子装置 |
CN115080021A (zh) * | 2022-05-13 | 2022-09-20 | 北京思特奇信息技术股份有限公司 | 基于自动化机器学习实现的零代码建模方法及系统 |
WO2022193513A1 (zh) * | 2021-03-17 | 2022-09-22 | 腾讯云计算(北京)有限责任公司 | 一种基于容器引擎的数据处理方法以及相关设备 |
CN115268950A (zh) * | 2022-07-22 | 2022-11-01 | 天翼云科技有限公司 | 一种镜像文件导入方法及装置 |
CN115510163A (zh) * | 2022-09-29 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 镜像文件的同步方法、装置、存储介质及电子设备 |
CN115668166A (zh) * | 2020-03-30 | 2023-01-31 | 净睿存储股份有限公司 | 由区块对象构成的文件系统 |
CN116126470A (zh) * | 2023-01-09 | 2023-05-16 | 麒麟软件有限公司 | 一种容器内脚本执行管控的方法、系统及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8165998B2 (en) * | 2004-05-14 | 2012-04-24 | Sap Ag | Fast comparison using multi-level version format |
US12056511B2 (en) * | 2020-11-09 | 2024-08-06 | International Business Machines Corporation | Container image creation and deployment using a manifest |
-
2023
- 2023-05-17 CN CN202310553898.4A patent/CN116302210B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427322A (zh) * | 2019-07-29 | 2019-11-08 | 国家电网有限公司 | 一种针对业务系统容器镜像的动态安全渗透测试方法、装置及系统 |
CN115668166A (zh) * | 2020-03-30 | 2023-01-31 | 净睿存储股份有限公司 | 由区块对象构成的文件系统 |
CN111629058A (zh) * | 2020-05-27 | 2020-09-04 | 广东浪潮大数据研究有限公司 | 一种镜像上传方法、装置、系统和后端设备 |
CN112130869A (zh) * | 2020-09-11 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种ai平台镜像处理的方法和装置 |
CN112395042A (zh) * | 2020-10-27 | 2021-02-23 | 国电南瑞科技股份有限公司 | 一种面向业务容器镜像进行安全扫描的方法和装置 |
CN112597244A (zh) * | 2020-12-23 | 2021-04-02 | 浙江中控技术股份有限公司 | 一种数据同步方法、装置及电子设备 |
WO2022193513A1 (zh) * | 2021-03-17 | 2022-09-22 | 腾讯云计算(北京)有限责任公司 | 一种基于容器引擎的数据处理方法以及相关设备 |
CN113342745A (zh) * | 2021-07-06 | 2021-09-03 | 中国光大银行股份有限公司 | 一种镜像文件的校验方法、装置、电子设备及存储介质 |
CN114706658A (zh) * | 2022-03-29 | 2022-07-05 | 浪潮云信息技术股份公司 | 一种容器镜像数据处理方法、装置、设备及介质 |
CN114840225A (zh) * | 2022-04-26 | 2022-08-02 | 光大科技有限公司 | 一种应用部署方法、装置、存储介质及电子装置 |
CN115080021A (zh) * | 2022-05-13 | 2022-09-20 | 北京思特奇信息技术股份有限公司 | 基于自动化机器学习实现的零代码建模方法及系统 |
CN115268950A (zh) * | 2022-07-22 | 2022-11-01 | 天翼云科技有限公司 | 一种镜像文件导入方法及装置 |
CN115510163A (zh) * | 2022-09-29 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 镜像文件的同步方法、装置、存储介质及电子设备 |
CN116126470A (zh) * | 2023-01-09 | 2023-05-16 | 麒麟软件有限公司 | 一种容器内脚本执行管控的方法、系统及介质 |
Non-Patent Citations (1)
Title |
---|
H. L. Praveen Raj.Enhancing QoS in a University Network by using Containerized Generic Cache.2020 IEEE International Conference on Electronics, Computing and Communication Technologies (CONECCT).2020,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116302210A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116302210B (zh) | 一种镜像文件的导入方法、装置、电子设备及存储介质 | |
Carvey et al. | Digital forensics with open source tools | |
CN104793946B (zh) | 基于云计算平台的应用部署方法和系统 | |
US7685177B1 (en) | Detecting and managing orphan files between primary and secondary data stores | |
US7640406B1 (en) | Detecting and managing orphan files between primary and secondary data stores for content addressed storage | |
US8151247B2 (en) | Test data management | |
US20070143527A1 (en) | Saving and restoring an interlocking trees datastore | |
WO2016026328A1 (zh) | 一种信息处理方法、装置及计算机存储介质 | |
CN108614702B (zh) | 字节码优化方法及装置 | |
TW434478B (en) | Method for testing the integrity of software pre-installed in a computer hard disk | |
CN110750434A (zh) | 接口测试方法、装置、电子设备和计算机可读存储介质 | |
CN106990974B (zh) | 一种app应用更新方法、装置及电子设备 | |
CN112948389B (zh) | 基于md5的数据库表数据比对方法及设备 | |
CN114116505A (zh) | 代码测试方法及装置 | |
CN109343891B (zh) | 数据处理的系统、方法及装置 | |
CN112711563A (zh) | 一种用于电子档案四性检测的方法及系统 | |
CN106021087A (zh) | 代码检测方法及装置 | |
US20130227541A1 (en) | Updating a web services description language for a service test | |
CN112069519A (zh) | 一种输出信息文件加密记录的方法及设备 | |
Colloton et al. | Towards Best Practices In Disk Imaging: A Cross-Institutional Approach | |
CN111488361A (zh) | 一种交叉报表生成方法及系统 | |
WO2020139353A1 (en) | Tree-conversion delta encoding | |
CN111309526A (zh) | 文件备份、恢复方法及其装置 | |
CN116991427B (zh) | 一种应用编译方法、装置、计算设备及存储介质 | |
US7401340B2 (en) | Supporting cross-component references in an object-oriented programming system |
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 |