CN114995948A - 下载安全容器镜像文件的方法、装置、设备及*** - Google Patents

下载安全容器镜像文件的方法、装置、设备及*** Download PDF

Info

Publication number
CN114995948A
CN114995948A CN202210524702.4A CN202210524702A CN114995948A CN 114995948 A CN114995948 A CN 114995948A CN 202210524702 A CN202210524702 A CN 202210524702A CN 114995948 A CN114995948 A CN 114995948A
Authority
CN
China
Prior art keywords
target mirror
layer data
mirror image
image layer
target
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
CN202210524702.4A
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210524702.4A priority Critical patent/CN114995948A/zh
Publication of CN114995948A publication Critical patent/CN114995948A/zh
Pending legal-status Critical Current

Links

Images

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
    • 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/445Program loading or initiating
    • 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/45587Isolation or security of 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书提供下载安全容器镜像文件的方法、装置、设备及***,所述方法应用于虚拟机,所述虚拟机中运行有至少一个安全容器,镜像文件包括至少一层镜像层数据。包括以下步骤:获取目标镜像层标识,在指定目录中查询是否存在与目标镜像层标识对应的目标镜像层数据;在没有查询到目标镜像层数据的情况下下载该目标镜像层数据并将其存储至指定目录;将目标镜像层标识与目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库;其中,指定目录用于存储同一用户可访问的每个虚拟机下载的镜像层数据,目标数据库用于存储已下载的目标镜像层标识与目标镜像层数据的存储路径之间的映射关系。

Description

下载安全容器镜像文件的方法、装置、设备及***
技术领域
本说明书实施例涉及计算机技术领域,尤其涉及下载安全容器镜像文件的方法、装置、设备及***。
背景技术
现如今,结合了Serverless技术的容器运行服务使得用户在无需维护服务器的情况下仅需提供镜像文件即可运行属于自己的容器。在多租户场景下,部署在同一台服务器上的不同用户的容器之间需要保持高度隔离以保证用户的数据安全,达到虚拟机隔离级别的安全容器为多租户场景下常用的容器服务。安全容器在通过KVM虚拟化技术创建的微型虚拟机上创建,从而使得安全容器拥有虚拟机级别的高隔离性,但由于安全容器之间镜像文件的不隔离导致数据的安全性仍无法保证。
发明内容
为克服相关技术中存在的问题,本说明书提供了下载安全容器镜像文件的方法、装置、设备及***。
根据本说明书实施例的第一方面,提供一种下载安全容器镜像文件的方法,应用于虚拟机,所述虚拟机中运行有至少一个安全容器,所述镜像文件包括至少一层镜像层数据,所述方法包括:
获取目标镜像层标识;
在指定目录下查询是否存在与所述目标镜像层标识对应的目标镜像层数据,所述指定目录用于存储同一用户可访问的每个虚拟机下载的镜像层数据;
在未查询到所述目标镜像层数据时,下载所述目标镜像层数据;
将所述目标镜像层数据存储于所述指定目录;
将所述目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库,所述目标镜像数据库用于存储已下载的目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系。
根据本说明书实施例的第二方面,提供一种下载安全容器镜像文件的装置,应用于虚拟机,所述虚拟机中运行有至少一个安全容器,所述镜像文件包括至少一层镜像层数据,所述装置包括:
获取模块,用于获取目标镜像层标识;
查询模块,用于在指定目录下查询是否存在与所述目标镜像层标识对应的目标镜像层数据,所述指定目录用于存储同一用户可访问的每个虚拟机下载的镜像层数据;
下载模块,用于在未查询到所述目标镜像层数据时,下载所述目标镜像层数据;
第一存储模块,用于将所述目标镜像层数据存储于所述指定目录;
第二存储模块,用于将所述目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库,所述目标镜像数据库用于存储已下载的目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系。
根据本说明书实施例的第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述第一方面所述的方法。
根据本说明书实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于指令相关的硬件,来完成上述第一方面所述的方法。
根据本说明书实施例的第五方面,提供一种分布式***,所述分布式***包括多个计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述第一方面所述的方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,运行安全容器所需的镜像数据由运行安全容器的虚拟机进行下载和管理。虚拟机拥有独立的数据库,用于存储已下载的目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系,实现了安全容器之间镜像数据的隔离,从而保证了不同用户的安全容器之间的高隔离度,避免了数据的泄露。此外,指定目录下存储了一个用户可访问的所有安全容器的镜像层数据,因此使得同一用户的不同安全容器之间能够共享镜像层数据,从而避免镜像层数据的重复下载,进而提高容器启动的速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种安全容器的示意图。
图2是本说明书根据一示例性实施例示出的一种下载安全容器镜像方法的流程图。
图3A是本说明书提供的一种用户创建容器过程的示意图。
图3B是本说明书根据一示例性实施例示出的一种用户创建容器过程的示意图。
图4是本说明书根据另一示例性实施例示出的一种下载安全容器镜像方法的流程图。
图5是本说明书实施例下载安全容器镜像装置所在计算机设备的一种硬件结构图。
图6是本说明书根据一示例性实施例示出的一种下载安全容器镜像装置的框图。
图7是本说明书根据一示例性实施例示出的一种分布式***的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
现如今,结合了Serverless技术的容器运行服务使得用户在无需维护服务器的情况下仅需提供镜像文件即可运行属于自己的容器。在多租户场景下,部署在同一台服务器上的不同用户的容器之间需要保持高度隔离以保证用户的数据安全,达到虚拟机隔离级别的安全容器为多用户场景下常用的容器服务。
安全容器是区别于传统容器的概念。传统容器基于内核提供的namespace、cgroup等机制实现容器内的资源、文件、***调用等的限制和隔离,运行于同一台物理机上的不同容器共用物理机操作***的内核。一旦其中一个容器遭受攻击则有可能使物理机操作***被控制,从而影响其他容器。
结合虚拟机技术可以解决传统容器因共享内核机制所产生的安全问题。通过虚拟机管理程序的模拟,运行于同一台物理机上的每一台虚拟机均具备完整的计算机***,各自拥有独立的操作***和内核。虚拟机上的程序很难突破虚拟化层加上的资源限制,并且由于内核的隔离,资源的可见性也做到了很强的隔离性。即使是恶意的用户,也很难突破这层虚拟化的限制以达到攻击物理机,或者同一台物理机上其他虚拟机的目的。因此,在虚拟机上创建容器一方面能够使容器的运行和物理操作***分离开,另一方面使得容器拥有自身独立的内核,在提高了容器之间隔离程度的同时也保证了物理机的安全。然而,虚拟机的创建需要消耗较多的计算机资源,导致启动速度慢,从而阻碍了虚拟机作为容器运行环境的应用。
为了兼顾虚拟机的安全优势和容器的速度优势,安全容器应运而生。KataContainer是一种常见的安全容器,采用更轻量级化的虚拟机技术,不需要为虚拟机模拟出完整的计算机***,只需在虚拟机中提供内核空间以供容器运行即可,从而在保证容器之间高隔离度的同时降低性能损耗,提高容器的启动速度。
然而,即便采用安全容器仍无法保证不同容器之间数据的安全性。部署于同一台物理机上的所有容器均由运行在该物理机上的容器运行时组件进行创建和管理。容器运行时组件维护一个存储镜像数据的公共数据库,该公共数据库中存储的镜像数据共享给各个容器,例如用户A可以通过访问公共数据库获取用户B的镜像数据,由此则会导致用户B数据的泄露。
针对因镜像数据的不隔离所导致的不同用户之间的数据安全问题,本说明书提出一种下载安全容器镜像文件的方法,将用于实现镜像文件的获取、管理、共享等操作的容器进行时组件中的image service模块转移至运行有至少一个安全容器的虚拟机中。镜像文件由至少一层镜像层数据组成。也就是说,每一个虚拟机均拥有自己独立的数据库来存储镜像层数据的标识和对应的镜像层数据存储路径之间的映射关系,即该映射关系不在虚拟机之间共享,从而实现虚拟机所存储的镜像层数据的隔离,进而实现不同用户之间镜像层数据的隔离。此外,每一台虚拟机下载的镜像层数据均存储于与虚拟机所属用户对应的指定目录,以使指定目录中的镜像层数据可以在同一用户的虚拟机之间共享以创建安全容器,从而实现同一用户的不同容器之间镜像层数据的共享。
接下来对本说明书实施例进行详细说明。
如图1所示,图1是本说明书根据一示例性实施例示出的一种多用户场景下安全容器的示意图,在同一台物理机110上部署有用户X的虚拟机120和用户Y的虚拟机130。用户X的虚拟机120和用户Y的虚拟机130各自拥有自己的内核140,且其中分别运行有属于用户X的容器150和用户Y的容器160。
如图2所示,图2是本说明书根据一示例性实施例示出的一种下载安全容器镜像文件方法的流程图,应用于虚拟机,每一个虚拟机中运行有至少一个安全容器,镜像文件包括至少一层镜像层数据,包括以下步骤:
步骤201,获取目标镜像层标识;
首先需要说明的是,完整的镜像文件image一般由manifest文件、config文件和layer文件组成。layer文件具有分层特性,包含了image中存在的文件和目录,以及它们的属性和具体的数据。每一层layer文件记录的是在上一层layer文件的基础上所作出的改动,主要包含三个方面的内容:变化类型,属于增加、修改还是删除;文件类型,每个变化发生在哪种文件类型上;文件属性,例如文件的修改时间、用户ID等。举个例子,第二层layer文件在第一层layer文件的基础上增加了一个文件,那么第二层layer文件所包含的内容就是增加的这个文件的数据以及它的属性,最底层的layer文件为基础镜像。每一层layer文件的格式可以是tar或tar.gzip。值得注意的是,每一层layer文件之间是相互独立的,每一层layer文件均可单独被共享。举个例子,假设用户G所需的镜像文件a包含layer1、layer2和layer3三层,用户H所需的镜像文件b包含layer1、layer4和layer5三层,那么用户G和用户H则可以共享layer1的数据。
config文件包含了对每一层layer文件的描述,例如每一层layer的镜像层标识以及layer文件之间的排列顺序。manifest文件则包含了对config文件的描述,例如config文件的标识、文件类型、文件大小等。
完整的镜像文件image可以从官方提供的公有镜像仓库获取,例如DockerHub,也可以由用户构建的私有镜像仓库中获取。在下载完整的镜像文件image时,首先下载manifest文件并从中获取config文件的标识,随后下载对应的config文件以获取每一层layer文件的镜像层标识,根据镜像层标识下载对应layer文件的压缩包,镜像文件中包含的每一层layer文件均下载完毕后即得到完整的镜像文件image。也就是说,layer文件的下载是分层进行的。本说明书所提出的下载安全容器镜像的方法可以适用在获取每一层layer文件。
步骤203,在指定目录下查询是否存在与目标镜像层标识对应的目标镜像层数据,指定目录用于存储同一用户可访问的每个虚拟机下载的镜像层数据;
每一层layer文件(即镜像层数据)下载成功后会被存储于指定目录下,存储时以layer文件对应的镜像层标识作为其文件名以根据目标镜像层标识查询对应的目标镜像层数据。指定目录是针对每一个用户所创建的共享目录,同一个用户在创建不同容器时属于同一个用户的各个虚拟机均可访问该指定目录以查询或获取创建容器时所需的镜像层数据。指定目录基于物理机上的共享文件***创建,在本说明书一实施例中,指定目录基于virtiofs文件***创建。virtiofs文件***是一种利用virtio和fuse在物理机和虚拟机之间共享文件夹的文件***,除此之外还可以基于其他共享文件***进行创建,本说明书对此不作限制。
当同一用户的两个不同的容器使用相同的镜像层数据时,通过查询指定目录中是否存在该镜像层数据则可判断该镜像层数据是否已被下载,在查询到该镜像层数据的情况下无需重复下载,继续获取下一层镜像层标识。举个例子,假设用户G在创建容器时获取到的目标镜像层标识为layer1,在用户G对应的指定目录中查询到了layer1则说明layer1对应的镜像层数据已被下载,用户G直接从指定目录中获取layer1对应的镜像层数据即可。
步骤205,在未查询到目标镜像层数据时,下载该目标镜像层数据;
步骤207,将目标镜像层数据存储于指定目录;
步骤209,将目标镜像层标识与目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库,目标镜像数据库用于存储已下载的目标镜像层标识与目标镜像层数据的存储路径之间的映射关系。
在指定目录中没有查询到目标镜像层标识时则说明该目标镜像层标识对应的目标镜像层数据没有被下载,随即下载该目标镜像层数据并存储至指定目录。存储至指定目录以共享的镜像层数据可以是压缩包,也可以是解压之后的数据。在本说明另一实施例中,将目标镜像层数据存储于指定目录之前,还包括:解压目标镜像层数据;将解压后的目标镜像层数据分离成元数据和镜像数据,元数据用于表征镜像数据的存储结构。将镜像层数据解压后再共享使得用户在创建其他容器时能够直接使用该镜像层数据而无需再次解压,从而节省了解压的时间进而加快容器启动的速度。此外,将目标镜像层数据分离成元数据和镜像数据使得对镜像层数据的管理以及访问只集中在两个文件上,从而进一步提高了容器启动的速度。考虑到rafs格式的数据具有元数据和数据分离的特点,在本说明书又一实施例中,将解压后的目标镜像层数据分离成元数据和镜像数据的步骤包括:将解压后的目标镜像层数据转换为rafs格式。将镜像层数据转换为rafs格式的过程可以通过nydus加速器实现。其他实现镜像层数据的元数据和镜像数据分离的方式也适用,本说明书不对此进行限制。
此外,每一个虚拟机拥有自己独立的镜像数据库,在运行容器时通过查询目标镜像数据库中目标镜像层标识与目标镜像层数据存储路径之间的映射关系以从指定目录中获取目标镜像层数据。因此,还需要将上述映射关系存储至目标镜像数据库。
在本说明书另一实施例中,在指定目录下查询是否存在与目标镜像层标识对应的目标镜像层数据之前,先在目标镜像数据库中查询是否存在目标镜像层标识。在同一用户的不同安全容器间共享镜像层数据时,存在以下情况:假设虚拟机A在创建安全容器时下载了一个镜像层数据a,虚拟机B在创建容器时也需要下载镜像层数据a,虚拟机B在第一次利用镜像层数据a时其镜像数据库中并不存在镜像层数据a的标识与镜像层数据a的存储路径之间的映射关系。若虚拟机B在指定目录中查询到了镜像层数据a的标识时则不会下载镜像层数据a,故不会将镜像层数据a的标识与像层数据a的存储路径之间的映射关系写入虚拟机B的镜像数据库,那么虚拟机B则无法运行容器。在指定目录中查询目标镜像层标识之前先查询目标镜像数据库,能够在当目标镜像层标识不存在于目标镜像数据库而存在于指定目录时,将目标镜像层数据的标识与目标镜像层数据存储路径之间的映射关系写入目标镜像数据库,从而避免上述容器无法运行的情况发生。
如图3A所示为一种用户创建容器的过程示意图,安装于物理机310上的用于创建容器350的容器运行时组件330接收用户340发送的创建容器的指令,该指令中包含用户待下载的镜像文件标识。随后容器运行时组件330将该指令转发给虚拟机320以使虚拟机320执行下载容器镜像的操作,先根据指令中的镜像文件标识在公有镜像仓库360中查询到与该镜像文件标识对应的镜像文件370,镜像文件370包括至少一层镜像层数据,镜像层数据1(371)、镜像层数据2(372)和镜像层数据3(373)。获取到每一层镜像层标识后分别下载每一层镜像层数据以获得完整的镜像文件370,最后将下载好的每一层镜像层数据置于容器350中运行。一般来说用于创建容器的组件直接安装于物理机上,但同时会使得物理机存在被攻击的风险,可以通过将该组件安装在一个虚拟机上以保证物理机的安全。在本说明书一实施例中,运行有至少一个安全容器的虚拟机与第一虚拟机连接,第一虚拟机中配置有用于创建安全容器的组件;在获取目标镜像层标识之前,还包括:接收该组件发送的创建安全容器的指令,以使虚拟机响应于该指令时获取目标镜像层标识。如图3B所示为根据本说明书一实施例所作的一种用户创建安全容器的过程,以containerd作为创建容器的组件,安装于虚拟机300上的用于创建容器350的containerd 380接收到用户340发送的创建容器的指令后,将该指令通过安装于物理机310上的agent客户端390转发给虚拟机320以执行上述下载容器镜像的操作,该指令中包含用户待下载的镜像文件标识。其中,虚拟机300为不同于用户340用于运行容器350的虚拟机320。
在前述下载完整的镜像文件image的过程中,下载的manifest文件、config文件以及每一层的layer文件(镜像层数据)的压缩包可统称为content文件并被存储于由容器运行时组件维护的content目录下,各个content文件的标识会被存储在被称为contentstore的文件中。在对目标镜像层数据进行下载后,还可以在content store或content目录中查询是否存在目标镜像层标识以确定目标镜像层数据是否下载成功。在本说明书一实施例中,下载与目标镜像层标识对应的目标镜像层数据之后,在content store中查询是否存在目标镜像层标识,content store用于存储目标镜像层标识;在未查询到目标镜像层标识时,在content目录中查询是否存在目标镜像层标识,content目录用于存储目标镜像层数据的压缩包;在未查询到目标镜像层标识时,下载与目标镜像层标识对应的目标镜像层数据。
如图4所示为本说明书根据另一实施例示出的一种下载安全容器镜像方法的流程图,包括以下步骤:
步骤401,获取目标镜像层标识;
步骤402,在目标镜像数据库中查询是否存在目标镜像层标识;
若查询到该镜像层标识则执行步骤408,获取下一层镜像层标识;若未查询到该镜像层标识,则执行步骤403。
步骤403,在指定目录下查询是否存在与目标镜像层标识对应的目标镜像层数据;
若查询到该镜像层标识则执行步骤407,若未查询到该镜像层标识,则执行步骤404。
步骤404,下载与目标镜像层标识对应的目标镜像层数据;
步骤405,解压目标镜像层数据并将目标镜像层数据转换成rafs格式;
步骤406,将转换为rafs格式的目标镜像层数据存储至指定目录;
步骤407,将目标镜像层标识与目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库;
步骤408,获取下一层镜像层标识。
重复上述步骤401-408直至获取所有所需的目标镜像层数据。
与前述方法的实施例相对应,本说明书还提供了装置及其所应用的终端的实施例。
本说明书下载安全容器镜像文件装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书实施例下载安全容器镜像文件装置所在电子设备的一种硬件结构图,除了图5所示的处理器510、内存530、网络接口520、以及非易失性存储器540之外,实施例中装置531所在的电子设备,通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图6所示,图6是本说明书根据一示例性实施例示出的一种下载安全容器镜像文件装置的框图,应用于虚拟机,虚拟机中运行有至少一个安全容器,镜像文件包括至少一层镜像层数据,所述装置包括:
获取模块610,用于获取目标镜像层标识;
查询模块620,用于在指定目录下查询是否存在与目标镜像层标识对应的目标镜像层数据,指定目录用于存储同一用户可访问的每个虚拟机下载的镜像层数据;
下载模块630,用于在未查询到目标镜像层数据时,下载该目标镜像层数据;
第一存储模块640,用于将目标镜像层数据存储于指定目录;
第二存储模块650,用于将目标镜像层标识与目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库,所述目标镜像数据库用于存储已下载的目标镜像层标识与目标镜像层数据的存储路径之间的映射关系。
在本说明书一些装置实施例中,查询模块还用于在指定目录下查询是否存在与目标镜像层标识对应的目标镜像层数据之前在目标镜像数据库中查询是否存在目标镜像层标识。
在本说明书一些装置实施例中,所述装置还包括:解压模块,用于解压目标镜像层数据;分离模块,用于将解压后的目标镜像层数据分离成元数据和镜像数据,所述元数据用于表征所述镜像数据的存储结构。
在本说明书一些装置实施例中,将解压后的目标镜像层数据分离成元数据和镜像数据包括:将解压后的目标镜像层数据转换为rafs格式。
在本说明书一些装置实施例中,指定目录基于virtiofs文件***创建。
在本说明书一些装置实施例中,虚拟机与第一虚拟机连接,第一虚拟机中配置有用于创建安全容器的组件;所述装置还包括接收模块,用于接收该组件发送的创建安全容器的指令,以使虚拟机响应于该指令时获取目标镜像层标识。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本说明书还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现前述任一方法实施例所述的方法。此外,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于指令相关的硬件,来完成前述任一方法实施例所述的方法。
另外,本说明书还提供一种分布式***,所述分布式***包括多个计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现前述任意一方法实施例所述的方法。如图7所示为本说明书根据一实施例示出的分布式***的示意图,分布式***700由多台服务器组成,包括服务器710、服务器720、服务器730、服务器740以及服务器750。服务器之间通过网络760相互连接,共同向外提供服务。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种下载安全容器镜像文件的方法,应用于虚拟机,所述虚拟机中运行有至少一个安全容器,所述镜像文件包括至少一层镜像层数据,所述方法包括:
获取目标镜像层标识;
在指定目录下查询是否存在与所述目标镜像层标识对应的目标镜像层数据,所述指定目录用于存储同一用户可访问的每个虚拟机下载的镜像层数据;
在未查询到所述目标镜像层数据时,下载所述目标镜像层数据;
将所述目标镜像层数据存储于所述指定目录;
将所述目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库,所述目标镜像数据库用于存储已下载的目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系。
2.根据权利要求1所述的方法,在指定目录下查询是否存在与所述目标镜像层标识对应的目标镜像层数据之前,还包括:
在所述目标镜像数据库中查询是否存在所述目标镜像层标识。
3.根据权利要求1所述的方法,将所述目标镜像层数据存储于所述指定目录之前,还包括:
解压所述目标镜像层数据;
将解压后的所述目标镜像层数据分离成元数据和镜像数据,所述元数据用于表征所述镜像数据的存储结构。
4.根据权利要求3所述的方法,将解压后的所述目标镜像层数据分离成元数据和镜像数据包括:将解压后的所述目标镜像层数据转换为rafs格式。
5.根据权利要求1所述的方法,所述指定目录基于virtiofs文件***创建。
6.根据权利要求1所述的方法,所述虚拟机与第一虚拟机连接,所述第一虚拟机中配置有用于创建所述安全容器的组件;
获取目标镜像层标识之前,还包括:
接收所述组件发送的创建所述安全容器的指令,以使所述虚拟机响应于所述指令时获取所述目标镜像层标识。
7.一种下载安全容器镜像文件的装置,应用于虚拟机,所述虚拟机中运行有至少一个安全容器,所述镜像文件包括至少一层镜像层数据,所述装置包括:
获取模块,用于获取目标镜像层标识;
查询模块,用于在指定目录下查询是否存在与所述目标镜像层标识对应的目标镜像层数据,所述指定目录用于存储同一用户可访问的每个虚拟机下载的镜像层数据;
下载模块,用于在未查询到所述目标镜像层数据时,下载所述目标镜像层数据;
第一存储模块,用于将所述目标镜像层数据存储于所述指定目录;
第二存储模块,用于将所述目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系写入目标镜像数据库,所述目标镜像数据库用于存储已下载的目标镜像层标识与所述目标镜像层数据的存储路径之间的映射关系。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现权利要求1-6任意一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于指令相关的硬件,来完成权利要求1-6任意一项所述的方法。
10.一种分布式***,所述分布式***包括多个计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现权利要求1-6任意一项所述的方法。
CN202210524702.4A 2022-05-13 2022-05-13 下载安全容器镜像文件的方法、装置、设备及*** Pending CN114995948A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210524702.4A CN114995948A (zh) 2022-05-13 2022-05-13 下载安全容器镜像文件的方法、装置、设备及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210524702.4A CN114995948A (zh) 2022-05-13 2022-05-13 下载安全容器镜像文件的方法、装置、设备及***

Publications (1)

Publication Number Publication Date
CN114995948A true CN114995948A (zh) 2022-09-02

Family

ID=83026882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210524702.4A Pending CN114995948A (zh) 2022-05-13 2022-05-13 下载安全容器镜像文件的方法、装置、设备及***

Country Status (1)

Country Link
CN (1) CN114995948A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048728A (zh) * 2023-01-16 2023-05-02 安超云软件有限公司 基于按需延迟加载的容器镜像加速的方法及应用
CN116302335A (zh) * 2023-02-22 2023-06-23 阿里云计算有限公司 数据处理方法以及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116048728A (zh) * 2023-01-16 2023-05-02 安超云软件有限公司 基于按需延迟加载的容器镜像加速的方法及应用
CN116302335A (zh) * 2023-02-22 2023-06-23 阿里云计算有限公司 数据处理方法以及装置

Similar Documents

Publication Publication Date Title
US8898167B2 (en) Method of accessing files in electronic devices
US8924954B2 (en) Application software installation method and application software installation apparatus
US11030025B2 (en) Managing inter-process communications in a containerized application environment
US20110078681A1 (en) Method and system for running virtual machine image
CN114995948A (zh) 下载安全容器镜像文件的方法、装置、设备及***
CN108073423B (zh) 一种加速器加载方法、***和加速器加载装置
US11809751B2 (en) Image file optimizations by opportunistic sharing
CN111897623B (zh) 一种集群管理方法、装置、设备及存储介质
CN113342711B (zh) 页表更新方法、装置及相关设备
CN112073448A (zh) 一种双***终端的服务隔离方法和装置
CN113395340A (zh) 一种信息更新方法、装置、设备、***和可读存储介质
CN114528255A (zh) 元数据管理方法、电子设备及计算机程序产品
CN113220669A (zh) 业务数据的处理方法、装置及电子设备
CN113377722A (zh) 一种资源数据读取方法、装置和存储介质
CN108062239B (zh) 一种加速器加载方法、***和加速器加载装置
US20210232418A1 (en) Global cache for container images in a clustered container host system
US9411618B2 (en) Metadata-based class loading using a content repository
US20230195695A1 (en) File Sharing Method and Terminal Device
US9971607B1 (en) Method of accessing files in electronic devices
CN113296891A (zh) 基于平台的多场景知识图谱处理方法及装置
CN111459619A (zh) 一种基于云平台实现服务的方法和装置
CN111382136B (zh) 文件***镜像及文件请求方法
US20060253858A1 (en) Software service application and method of servicing a software application
CN115586872A (zh) 一种容器镜像管理方法、装置、设备及存储介质
CN112347794A (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