CN111522627B - 一种Docker镜像管理方法、装置、设备及介质 - Google Patents

一种Docker镜像管理方法、装置、设备及介质 Download PDF

Info

Publication number
CN111522627B
CN111522627B CN202010337645.XA CN202010337645A CN111522627B CN 111522627 B CN111522627 B CN 111522627B CN 202010337645 A CN202010337645 A CN 202010337645A CN 111522627 B CN111522627 B CN 111522627B
Authority
CN
China
Prior art keywords
file
image
managed
docker
warehouse
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
CN202010337645.XA
Other languages
English (en)
Other versions
CN111522627A (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.)
Hangzhou Weipei Network Technology Co ltd
Original Assignee
Hangzhou Weipei Network 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 Hangzhou Weipei Network Technology Co ltd filed Critical Hangzhou Weipei Network Technology Co ltd
Priority to CN202010337645.XA priority Critical patent/CN111522627B/zh
Publication of CN111522627A publication Critical patent/CN111522627A/zh
Application granted granted Critical
Publication of CN111522627B publication Critical patent/CN111522627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种Docker镜像管理方法、装置、设备及介质,涉及计算机技术领域。方法包括:检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性;解析所述待管理文件,生成Docker镜像,作为待管理镜像,并参照所述存储属性对所述待管理镜像命名;将命名后的所述待管理镜像存储至镜像仓库。应用本申请实施例提供的Docker镜像管理方案,便于实现对Docker镜像和Docker镜像声明文件的统一管理。

Description

一种Docker镜像管理方法、装置、设备及介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种Docker镜像管理方法、装置、设备及介质。
背景技术
随着Docker(应用容器引擎)技术的快速发展,Docker的应用也越来越广泛。为满足不同的Docker对运行环境的多样化需求,需要为不同的Docker部署不同类型的Docker镜像。
现有技术中,在构建Docker镜像时,需要基于Docker镜像声明文件(Dockerfile)来实现。在编辑完成Docker镜像声明文件后,对Docker镜像声明文件进行解析可以生成Docker镜像。Docker镜像声明文件中可以包含Docker镜像的描述信息,而且在后续对Docker镜像进行优化和更新时,需要查找Docker镜像对应的Docker镜像声明文件,对查找到的Docker镜像声明文件进行修改。
因此,现在亟需一种Docker镜像管理方案,来实现对Docker镜像和Docker镜像声明文件的统一管理。
发明内容
本申请实施例的目的在于提供一种Docker镜像管理方法、装置、设备及介质,以实现对Docker镜像和Docker镜像声明文件的统一管理。具体技术方案如下:
第一方面,本申请实施例提供了一种Docker镜像管理方法,所述方法包括:
检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性;
解析所述待管理文件,生成Docker镜像,作为待管理镜像,并参照所述存储属性对所述待管理镜像命名;
将命名后的所述待管理镜像存储至镜像仓库。
本申请的一个实施例中,所述存储属性包括:所述待管理文件存储于所述文件仓库的各级目录信息;
所述参照所述存储属性对所述待管理镜像命名,包括:
确定包含各级目录信息和预设前缀的镜像名称;
按照所述镜像名称对所述待管理镜像命名。
本申请的一个实施例中,所述检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,包括:
当检测到存在Docker镜像声明文件被合并到所述文件仓库时,执行文件检测命令,触发检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件。
本申请的一个实施例中,所述方法还包括:
当接收到对待维护镜像进行维护的指令时,基于所述待维护镜像的名称,获得所述待维护镜像对应的目标镜像声明文件的目标存储属性;
按照所述目标存储属性,在所述文件仓库中查找所述目标镜像声明文件;
对查找到的所述目标镜像声明文件进行编辑,将编辑后的所述目标镜像声明文件合并到所述文件仓库。
第二方面,本申请实施例提供了一种Docker镜像管理装置,所述装置包括:
文件检测模块,用于检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性;
镜像生成模块,用于解析所述待管理文件,生成Docker镜像,作为待管理镜像;
镜像命名模块,用于参照所述存储属性对所述待管理镜像命名;
镜像存储模块,用于将命名后的所述待管理镜像存储至镜像仓库。
本申请的一个实施例中,所述存储属性包括:所述待管理文件存储于所述文件仓库的各级目录信息;
所述镜像命名模块,具体用于:
确定包含各级目录信息和预设前缀的镜像名称;
按照所述镜像名称对所述待管理镜像命名。
本申请的一个实施例中,所述文件检测模块,具体用于:
当检测到存在Docker镜像声明文件被合并到所述文件仓库时,执行文件检测命令,触发检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性。
本申请的一个实施例中,所述装置还包括镜像维护模块,用于:
当接收到对待维护镜像进行维护的指令时,基于所述待维护镜像的名称,获得所述待维护镜像对应的目标镜像声明文件的目标存储属性;
按照所述目标存储属性,在所述文件仓库中查找所述目标镜像声明文件;
对查找到的所述目标镜像声明文件进行编辑,将编辑后的所述目标镜像声明文件合并到所述文件仓库。
第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的Docker镜像管理方法。
本申请实施例有益效果:
应用本申请实施例提供的方案在对Docker镜像进行管理时,首先检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于文件仓库中的待管理文件的存储属性;解析待管理文件,生成Docker镜像,作为待管理镜像,并参照存储属性对待管理镜像命名;将命名后的待管理镜像存储至镜像仓库。一方面,利用文件仓库可以实现对Docker镜像声明文件进行统一存储,利用镜像仓库可以实现对基于Docker镜像声明文件所生成的Docker镜像进行统一存储。另一方面,基于Docker镜像声明文件的存储属性对所生成的Docker镜像进行命名,这样在后续对Docker镜像进行管理时,根据Docker镜像的名称可以直接获得对应的Docker镜像声明文件的存储属性,进而根据所获得的存储属性可以快速查找到对应的Docker镜像声明文件。由此可见,应用本申请实施例提供的Docker镜像管理方案,便于实现对Docker镜像和Docker镜像声明文件的统一管理。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种Docker镜像管理方法的流程示意图;
图2为本申请实施例提供的一种目录结构的示意图;
图3为本申请实施例提供的另一种Docker镜像管理方法的流程示意图;
图4为本申请实施例提供的又一种Docker镜像管理方法的流程示意图;
图5a和图5b为本申请实施例提供的一种仓库界面的示意图;
图6为本申请实施例提供的一种Docker镜像管理装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于实现对Docker镜像和Docker镜像声明文件的统一管理,本申请实施例提供了一种Docker镜像管理方法、装置、电子设备及存储介质,下面分别进行详细介绍。
参见图1,图1为本申请实施例提供的一种Docker镜像管理方法的流程示意图。Docker镜像管理方法可以应用于笔记本电脑、台式计算机、平板电脑等电子设备中,还可以应用于大数据存储平台中。
Docker镜像管理方法包括如下步骤101至步骤103。
步骤101,检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于文件仓库中的待管理文件的存储属性。
其中,上述文件仓库可以是gitlab仓库。gitlab仓库是一种以git为代码管理工具搭建起来的web服务系统,gitlab仓库可以对Docker镜像声明文件进行存储和管理。gitlab仓库可以对所存储的资源开放共享,这样便于不同用户利用gitlab仓库共同构建Docker镜像声明文件。除此之外,上述文件仓库还可以是github仓库等。
上述存储属性可以包括:存储于文件仓库中的待管理文件的存储目录、待管理文件的名称、待管理文件的存储日期、待管理文件的作者等。
本申请的一个实施例中,可以当检测到存在Docker镜像声明文件被合并到文件仓库时,执行文件检测命令,触发检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件。
具体的,用户在电子设备上对Docker镜像声明文件编辑完成后,可以将Docker镜像声明文件推送至文件仓库。在检测到有Docker镜像声明文件被合并到文件仓库时,认为文件仓库中存储的Docker镜像声明文件发生了变动,此时可以执行文件检测命令,触发检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件。以上述文件仓库为gitlab仓库为例,在用户将编辑后的Docker镜像声明文件推送至gitlab仓库后,可以执行git-diff(文本文件比较)命令,查找出gitlab仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件。
在查找到待管理文件后,可以获得待管理文件在文件仓库中的存储目录、名称、存储日期、作者等信息中的至少一种,作为待管理文件的存储属性。
步骤102,解析待管理文件,生成Docker镜像,作为待管理镜像,并参照存储属性对待管理镜像命名。
具体的,待管理文件是一种Docker镜像声明文件,对待管理文件进行解析,可以生成得到Docker镜像,将所生成的Docker镜像作为待管理镜像。在对所生成的待管理镜像进行命名时,可以参照待管理文件的存储属性进行命名。这样可以使得Docker镜像的名称和Docker镜像声明文件的存储属性之间存在关联关系。根据Docker镜像的名称,可以直接获得用于生成该Docker镜像的Docker镜像声明文件的存储属性,便于后续对Docker镜像和Docker镜像声明文件进行统一管理。
在参照存储属性对待管理镜像命名时,可以直接将存储属性作为待管理镜像的名称。也可以将存储属性中的部分内容,作为待管理镜像的名称。还可以将存储属性与预设的标识相结合,作为待管理镜像的名称。
本申请的一个实施例中,可以直接将待管理文件的存储属性作为待管理镜像的名称。例如,在待管理文件的存储属性为待管理文件的存储日期的情况下,假设待管理文件的存储日期为2020.04.21,则可以直接将由该待管理文件生成的Docker镜像命名为20200421。
本申请的一个实施例中,待管理镜像的名称可以包括待管理文件的存储属性和预设的镜像标识。上述镜像标识可以是“jx”、“Do”、“Mirr”等。镜像标识和存储属性之间可以用“.”、“-”、“/”等连接符断开。待管理镜像的名称中,镜像标识可以位于存储属性之前,也可以位于存储属性之后。例如,在镜像标识为“jx”、存储属性为待管理文件名称的情况下,假设待管理文件的名称为“Update”,若镜像名称中镜像标识位于存储属性之前,镜像标识和存储属性之间的连接符为“.”,则可以确定镜像的名称为“jx.Update”。
步骤103,将命名后的待管理镜像存储至镜像仓库。
其中,上述镜像仓库用于对Docker镜像进行存储,镜像仓库可以是harbor仓库等。
具体的,可以将命名后的待管理镜像存储至镜像仓库。在将镜像仓库开放共享的情况下,不同用户可以从镜像仓库中获得Docker镜像。这样便于团队成员利用镜像仓库实现Docker镜像共享。
应用上述实施例提供的方案在对Docker镜像进行管理时,首先检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于文件仓库中的待管理文件的存储属性;解析待管理文件,生成Docker镜像,作为待管理镜像,并参照存储属性对待管理镜像命名;将命名后的待管理镜像存储至镜像仓库。一方面,利用文件仓库可以实现对Docker镜像声明文件进行统一存储,利用镜像仓库可以实现对基于Docker镜像声明文件所生成的Docker镜像进行统一存储。另一方面,基于Docker镜像声明文件的存储属性对所生成的Docker镜像进行命名,这样在后续对Docker镜像进行管理时,根据Docker镜像的名称可以直接获得对应的Docker镜像声明文件的存储属性,进而根据所获得的存储属性可以快速查找到对应的Docker镜像声明文件。由此可见,应用上述实施例提供的Docker镜像管理方案,便于实现对Docker镜像和Docker镜像声明文件的统一管理。
本申请的一个实施例中,在待管理文件的存储属性包括:待管理文件存储于文件仓库的各级目录信息的情况下,上述步骤102中在参照存储属性对待管理镜像命名时,可以确定包含各级目录信息和预设前缀的镜像名称,按照镜像名称对待管理镜像命名。
其中,上述各级目录信息可以包括:待管理文件存储于文件仓库的一级目录信息、二级目录信息、三级目录信息、四级目录信息等,每一待管理文件的目录信息表征:该待管理文件在文件仓库中的存储路径。
上述预设前缀可以是:镜像仓库中用于存储Docker镜像的项目的项目名称。例如,假设Docker镜像存储于镜像仓库中“infra”项目下,则预设前缀可以是“infra”。上述预设前缀还可以是预先设定的Docker镜像的标识等。预设前缀和各级目录信息之间可以用预设的连接符隔开。
本申请的一个实施例中,在文件仓库为gitlab仓库的情况下,Docker镜像声明文件的存储目录包括三级目录,每一级目录用于对文件进行分类存储。其中:
一级目录用于按照语言类别或其他维度对Docker镜像声明文件进行分类存储。上述语言类别包括Java、C语言、Python、Unity3D等。其他维度还可以是Docker镜像声明文件的作者,也就是一级目录可以按照文件的作者对Docker镜像声明文件进行分类存储。
二级目录用于按照版本号对Docker镜像声明文件进行分类存储。同一个一级目录下可支持多个二级目录,即同一类型Docker镜像声明文件可以包括多个版本。Docker镜像声明文件的版本号可以是序号,如1.0、2.0、3.0等,也可以是英文字符,如a、b、c等。
三级目录用于存储Docker镜像声明文件以及其他相关的依赖文件,上述依赖文件可以是“www.conf”配置文件等。
参见图2,图2为本申请实施例提供的一种目录结构的示意图。图2所示目录结构中,一级目录用于按照语言类别“phy”和“go”对Docker镜像声明文件进行分类存储,二级目录用于按照版本号“1.0”、“2.0”对Docker镜像声明文件进行分类存储,三级目录包括Docker镜像声明文件“Dockerfile”以及配置文件“www.conf”。
假设上述预设前缀为“infra”,预设前缀与各级目录信息之间采用连接符“/”进行连接,各级目录信息之间采用连接符“-”进行连接。以图2中第一个Docker镜像声明文件为例,其各级目录信息包括:php/1.0/Dockerfile,则基于该Docker镜像声明文件生成的Docker镜像的镜像名称可以为“infra/php-1.0”;同理第二个Docker镜像声明文件各级目录信息包括:go/1.0/Dockerfile,基于该Docker镜像声明文件生成的Docker镜像的镜像名称可以为“infra/go-1.0”;第三个Docker镜像声明文件各级目录信息包括:go/2.0/Dockerfile,基于该Docker镜像声明文件生成的Docker镜像的镜像名称可以为“infra/go-2.0”。
参见图3,图3为本申请实施例提供的另一种Docker镜像管理方法的流程示意图,相对于图1所示方法,该方案还包括如下步骤104至步骤106。
步骤104,当接收到对待维护镜像进行维护的指令时,基于待维护镜像的名称,获得待维护镜像对应的目标镜像声明文件的目标存储属性。
具体的,在需要对镜像进行维护时,工作人员可以向电子设备发送维护指令,电子设备在接收到对待维护镜像进行维护的指令时,可以获得待维护镜像的名称。由于Docker镜像的名称为参照Docker镜像声明文件的存储属性确定的,因此根据待维护镜像的名称,可以获得待维护镜像对应的目标镜像声明文件的目标存储属性。例如,假设待维护镜像的镜像名称为“infra/go-2.0”,则可以确定目标镜像声明文件的目标存储属性为“go-2.0”。
步骤105,按照目标存储属性,在文件仓库中查找目标镜像声明文件。
具体的,Docker镜像声明文件的存储属性可以表征:文件仓库中Docker镜像声明文件的存储信息,因此,根据目标镜像声明文件的目标存储属性,可以在文件仓库中查找到目标镜像声明文件。
其中,在上述目标存储属性为Docker镜像声明文件存储于文件仓库的各级目录信息的情况下,可以根据各级目录信息直接查找目标镜像声明文件所存储的目录,从查找到的目录中获得目标镜像声明文件。
在上述目标存储属性为Docker镜像声明文件存储于文件仓库的名称的情况下,可以在文件仓库所存储的Docker镜像声明文件中查找对应名称的Docker镜像声明文件,作为目标镜像声明文件。
在上述目标存储属性为Docker镜像声明文件存储于文件仓库的存储日期的情况下,可以在文件仓库所存储的Docker镜像声明文件中查找对应存储日期的Docker镜像声明文件,作为目标镜像声明文件。
步骤106,对查找到的目标镜像声明文件进行编辑,将编辑后的目标镜像声明文件合并到文件仓库。
具体的,工作人员可以利用电子设备对查找到的目标镜像声明文件进行编辑,通过编辑Docker镜像声明文件的方式实现对Docker镜像的维护。在编辑完成后,可以将目标镜像声明文件再次合并到文件仓库中。可以对文件仓库中增加和/或变更的目标镜像声明文件进行编译,生成新的Docker镜像。再将新的Docker镜像存储至镜像仓库,进而实现对待维护镜像的维护。
参见图4,图4为本申请实施例提供的又一种Docker镜像管理方法的流程示意图,具体包括如下步骤401-步骤404。
步骤401,在检测到gitlab仓库中增加和/或变更Docker镜像声明文件的情况下,触发gitlab流水线。
其中,上述gitlab流水线可以表征:对gitlab仓库中Docker镜像声明文件按顺序执行的多个任务,上述多个任务可以包括检测待管理镜像文件、获得目录信息、生成Docker镜像、对待管理镜像命名、存储待管理镜像等任务。在gitlab流水线被触发后,可以按照顺序对上述多个任务依次执行,这样可以提高Docker镜像管理的自动化,减少人工参与,可以快速、便捷地创建和更新Docker镜像。
步骤402,运行gitlab-ci脚本,通过git-diff命令检测gitlab仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,并获得待管理文件在gitlab仓库中的各级目录信息。
具体的,gitlab流水线被触发后,可以运行gitlab-ci脚本,gitlab-ci管理运行git-diff命令对增加和/或变更的Docker镜像声明文件进行检测。
步骤403,根据待管理文件生成Docker镜像,作为待管理镜像,并根据待管理文件的各级目录信息对待管理镜像命名。
其中,根据待管理文件生成Docker镜像的方式、以及对待管理镜像命名的方式同上述步骤102类似,在此不作赘述。
步骤404,将生成的待管理镜像存储至镜像仓库。
参见图5a和图5b,图5a和图5b为本申请实施例提供的一种仓库界面的示意图。其中,图5a为gitlab仓库中Docker镜像声明文件的存储界面的示意图。如图5a所示,gitlab仓库中一级目录go/下有三个版本的文件目录,分别为1.0/、2.0/和3.0/,每个目录中各包含一个Docker镜像声明文件。以上Docker镜像声明文件在新增或者变更时,gitlab-ci会通过git-diff命令查找出来,并分别生成对应的Docker镜像,将所生成的Docker镜像存储在gitlab仓库中。
图5b为镜像仓库中Docker镜像的存储界面的示意图。如图5b所示,根据图5a所示目录下Docker镜像声明文件,可以生成infra/go-1.0、infra/go-2.0和infra/go-3.0的Docker镜像。
本申请的一个实施例中,上述Docker镜像可以是基础镜像,不同的基础镜像可以适应不同的运行环境,在需要构建Docker服务时,可以根据Docker服务的运行环境选择对应的基础镜像,在所选择的基础镜像上加入Docker服务对应的代码编译结果,可以实现对Docker服务镜像的构建。
应用上述实施例提供的方案在对Docker镜像进行管理时,首先检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于文件仓库中的待管理文件的存储属性;解析待管理文件,生成Docker镜像,作为待管理镜像,并参照存储属性对待管理镜像命名;将命名后的待管理镜像存储至镜像仓库。一方面,利用文件仓库可以实现对Docker镜像声明文件进行统一存储,利用镜像仓库可以实现对基于Docker镜像声明文件所生成的Docker镜像进行统一存储。另一方面,基于Docker镜像声明文件的存储属性对所生成的Docker镜像进行命名,这样在后续对Docker镜像进行管理时,根据Docker镜像的名称可以直接获得对应的Docker镜像声明文件的存储属性,进而根据所获得的存储属性可以快速查找到对应的Docker镜像声明文件。由此可见,应用上述实施例提供的Docker镜像管理方案,便于实现对Docker镜像和Docker镜像声明文件的统一管理。
参见图6,图6为本申请实施例提供的一种Docker镜像管理装置的结构示意图,所述装置包括:
文件检测模块601,用于检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性;
镜像生成模块602,用于解析所述待管理文件,生成Docker镜像,作为待管理镜像;
镜像命名模块603,用于参照所述存储属性对所述待管理镜像命名;
镜像存储模块604,用于将命名后的所述待管理镜像存储至镜像仓库。
本申请的一个实施例中,所述存储属性包括:所述待管理文件存储于所述文件仓库的各级目录信息;
所述镜像命名模块603,具体用于:
确定包含各级目录信息和预设前缀的镜像名称;
按照所述镜像名称对所述待管理镜像命名。
本申请的一个实施例中,所述文件检测模块601,具体用于:
当检测到存在Docker镜像声明文件被合并到所述文件仓库时,执行文件检测命令,触发检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性。
本申请的一个实施例中,所述装置还包括镜像维护模块,用于:
当接收到对待维护镜像进行维护的指令时,基于所述待维护镜像的名称,获得所述待维护镜像对应的目标镜像声明文件的目标存储属性;
按照所述目标存储属性,在所述文件仓库中查找所述目标镜像声明文件;
对查找到的所述目标镜像声明文件进行编辑,将编辑后的所述目标镜像声明文件合并到所述文件仓库。
应用上述实施例提供的方案在对Docker镜像进行管理时,首先检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于文件仓库中的待管理文件的存储属性;解析待管理文件,生成Docker镜像,作为待管理镜像,并参照存储属性对待管理镜像命名;将命名后的待管理镜像存储至镜像仓库。一方面,利用文件仓库可以实现对Docker镜像声明文件进行统一存储,利用镜像仓库可以实现对基于Docker镜像声明文件所生成的Docker镜像进行统一存储。另一方面,基于Docker镜像声明文件的存储属性对所生成的Docker镜像进行命名,这样在后续对Docker镜像进行管理时,根据Docker镜像的名称可以直接获得对应的Docker镜像声明文件的存储属性,进而根据所获得的存储属性可以快速查找到对应的Docker镜像声明文件。由此可见,应用上述实施例提供的Docker镜像管理方案,便于实现对Docker镜像和Docker镜像声明文件的统一管理。
本申请实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性;
解析所述待管理文件,生成Docker镜像,作为待管理镜像,并参照所述存储属性对所述待管理镜像命名;
将命名后的所述待管理镜像存储至镜像仓库。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一Docker镜像管理方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一Docker镜像管理方法。
应用上述实施例提供的方案在对Docker镜像进行管理时,首先检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于文件仓库中的待管理文件的存储属性;解析待管理文件,生成Docker镜像,作为待管理镜像,并参照存储属性对待管理镜像命名;将命名后的待管理镜像存储至镜像仓库。一方面,利用文件仓库可以实现对Docker镜像声明文件进行统一存储,利用镜像仓库可以实现对基于Docker镜像声明文件所生成的Docker镜像进行统一存储。另一方面,基于Docker镜像声明文件的存储属性对所生成的Docker镜像进行命名,这样在后续对Docker镜像进行管理时,根据Docker镜像的名称可以直接获得对应的Docker镜像声明文件的存储属性,进而根据所获得的存储属性可以快速查找到对应的Docker镜像声明文件。由此可见,应用上述实施例提供的Docker镜像管理方案,便于实现对Docker镜像和Docker镜像声明文件的统一管理。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (8)

1.一种Docker镜像管理方法,其特征在于,所述方法包括:
检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性;
解析所述待管理文件,生成Docker镜像,作为待管理镜像,并参照所述存储属性对所述待管理镜像命名;
将命名后的所述待管理镜像存储至镜像仓库;
其中,所述存储属性包括:所述待管理文件存储于所述文件仓库的各级目录信息,所述各级目录信息用于表征所述待管理文件在所述文件仓库中的存储路径,所述参照所述存储属性对所述待管理镜像命名,包括:
确定包含所述各级目录信息和预设前缀的镜像名称;按照所述镜像名称对所述待管理镜像命名。
2.根据权利要求1所述的方法,其特征在于,所述检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,包括:
当检测到存在Docker镜像声明文件被合并到所述文件仓库时,执行文件检测命令,触发检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到对待维护镜像进行维护的指令时,基于所述待维护镜像的名称,获得所述待维护镜像对应的目标镜像声明文件的目标存储属性;
按照所述目标存储属性,在所述文件仓库中查找所述目标镜像声明文件;
对查找到的所述目标镜像声明文件进行编辑,将编辑后的所述目标镜像声明文件合并到所述文件仓库。
4.一种Docker镜像管理装置,其特征在于,所述装置包括:
文件检测模块,用于检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性;
镜像生成模块,用于解析所述待管理文件,生成Docker镜像,作为待管理镜像;
镜像命名模块,用于参照所述存储属性对所述待管理镜像命名;
镜像存储模块,用于将命名后的所述待管理镜像存储至镜像仓库;
其中,所述存储属性包括:所述待管理文件存储于所述文件仓库的各级目录信息,所述各级目录信息用于表征所述待管理文件在所述文件仓库中的存储路径;所述镜像命名模块,具体用于:
确定包含所述各级目录信息和预设前缀的镜像名称;按照所述镜像名称对所述待管理镜像命名。
5.根据权利要求4所述的装置,其特征在于,所述文件检测模块,具体用于:
当检测到存在Docker镜像声明文件被合并到所述文件仓库时,执行文件检测命令,触发检测文件仓库中增加和/或变更的Docker镜像声明文件,作为待管理文件,获得存储于所述文件仓库中的所述待管理文件的存储属性。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括镜像维护模块,用于:
当接收到对待维护镜像进行维护的指令时,基于所述待维护镜像的名称,获得所述待维护镜像对应的目标镜像声明文件的目标存储属性;
按照所述目标存储属性,在所述文件仓库中查找所述目标镜像声明文件;
对查找到的所述目标镜像声明文件进行编辑,将编辑后的所述目标镜像声明文件合并到所述文件仓库。
7.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一所述的方法步骤。
CN202010337645.XA 2020-04-26 2020-04-26 一种Docker镜像管理方法、装置、设备及介质 Active CN111522627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010337645.XA CN111522627B (zh) 2020-04-26 2020-04-26 一种Docker镜像管理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010337645.XA CN111522627B (zh) 2020-04-26 2020-04-26 一种Docker镜像管理方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN111522627A CN111522627A (zh) 2020-08-11
CN111522627B true CN111522627B (zh) 2023-11-28

Family

ID=71904199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010337645.XA Active CN111522627B (zh) 2020-04-26 2020-04-26 一种Docker镜像管理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN111522627B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227579A (zh) * 2016-07-12 2016-12-14 深圳市中润四方信息技术有限公司 一种Docker容器构建方法及Docker管理控制台
CN106997392A (zh) * 2017-04-10 2017-08-01 北京搜狐新媒体信息技术有限公司 Docker镜像缓存信息的处理方法、装置以及读取方法和装置
CN107896162A (zh) * 2017-11-08 2018-04-10 平安科技(深圳)有限公司 监控系统的部署方法、 装置、 计算机设备及存储介质
CN108897527A (zh) * 2018-05-21 2018-11-27 东莞理工学院 一种云计算中遥感图像处理的Docker镜像自动化动态构建方法
CN109144880A (zh) * 2018-09-06 2019-01-04 北京京东尚科信息技术有限公司 镜像文件的管理方法及系统、设备、存储介质
CN109739616A (zh) * 2018-12-05 2019-05-10 国云科技股份有限公司 一种云平台容器镜像批量制作方法
WO2019095936A1 (zh) * 2017-11-15 2019-05-23 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、服务器、装置及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI334091B (en) * 2007-03-03 2010-12-01 Ind Tech Res Inst Data file management and search method and system based on file attributes
US8429368B2 (en) * 2007-06-01 2013-04-23 Netapp, Inc. Providing an administrative path for accessing a writeable master storage volume in a mirrored storage environment
CN111045854B (zh) * 2018-10-12 2023-09-01 伊姆西Ip控股有限责任公司 用于管理服务容器的方法、设备和计算机可读介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106227579A (zh) * 2016-07-12 2016-12-14 深圳市中润四方信息技术有限公司 一种Docker容器构建方法及Docker管理控制台
CN106997392A (zh) * 2017-04-10 2017-08-01 北京搜狐新媒体信息技术有限公司 Docker镜像缓存信息的处理方法、装置以及读取方法和装置
CN107896162A (zh) * 2017-11-08 2018-04-10 平安科技(深圳)有限公司 监控系统的部署方法、 装置、 计算机设备及存储介质
WO2019095936A1 (zh) * 2017-11-15 2019-05-23 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、服务器、装置及存储介质
CN108897527A (zh) * 2018-05-21 2018-11-27 东莞理工学院 一种云计算中遥感图像处理的Docker镜像自动化动态构建方法
CN109144880A (zh) * 2018-09-06 2019-01-04 北京京东尚科信息技术有限公司 镜像文件的管理方法及系统、设备、存储介质
CN109739616A (zh) * 2018-12-05 2019-05-10 国云科技股份有限公司 一种云平台容器镜像批量制作方法

Also Published As

Publication number Publication date
CN111522627A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
CN106980504B (zh) 一种应用程序开发方法及其工具、设备
US8108360B2 (en) Database object update order determination
US20110289407A1 (en) Font recommendation engine
CN111507086B (zh) 本地化应用程序中翻译文本位置的自动发现
CN108563440B (zh) 列表控制器代码自动添加方法、装置及可读存储介质
US9632987B2 (en) Technique that enhances the manipulation of an HTML tree presentation by using an array representation of the hierarchical path of a tree node
CN110007920B (zh) 一种获取代码依赖关系的方法、装置及电子设备
CN110362968B (zh) 信息检测方法、装置及服务器
CN110968302A (zh) 前端开发方法、装置及电子设备
CN111679976A (zh) 一种页面对象的查找方法及装置
CN116560683A (zh) 软件更新方法、装置、设备及存储介质
CN111984262A (zh) 微信层叠样式表文件的处理方法、装置、设备及存储介质
CN116560661A (zh) 代码优化方法、装置、设备及存储介质
CN112347324B (zh) 一种文档查询方法、装置、电子设备及存储介质
CN112257005B (zh) 一种表单组件生成方法及装置
CN111522627B (zh) 一种Docker镜像管理方法、装置、设备及介质
WO2023151397A1 (zh) 应用程序部署方法、装置、设备及介质
CN111352631A (zh) 一种接口兼容性检测方法及装置
CN115185535A (zh) 依赖关系显示方法及装置、存储介质及电子设备
Hossny et al. Semantic-based generation of generic-API adapters for portable cloud applications
Le Zou et al. On synchronizing with web service evolution
CN114281688A (zh) 一种无码或低码的自动化用例管理方法和装置
CN112463896A (zh) 档案编目数据处理方法、装置、计算设备及存储介质
Nguyen Model-based version and configuration management for a web engineering lifecycle
CN114756236A (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