CN110688174A - 容器启动方法、存储介质和电子设备 - Google Patents

容器启动方法、存储介质和电子设备 Download PDF

Info

Publication number
CN110688174A
CN110688174A CN201910943364.6A CN201910943364A CN110688174A CN 110688174 A CN110688174 A CN 110688174A CN 201910943364 A CN201910943364 A CN 201910943364A CN 110688174 A CN110688174 A CN 110688174A
Authority
CN
China
Prior art keywords
container
mirror image
metadata
file
image
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
CN201910943364.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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201910943364.6A priority Critical patent/CN110688174A/zh
Publication of CN110688174A publication Critical patent/CN110688174A/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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system

Landscapes

  • Engineering & Computer Science (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)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种容器启动方法、存储介质和电子设备。本发明实施例的方法包括:响应于启动请求,获取待启动的容器的镜像标识,并根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径,进而根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器。由此,无需加载整个镜像,只需要根据元数据中文件的存储路径就能够加载预定文件,创建并启动容器,从而,降低了容器启动的时间,同时降低了镜像对存储空间的消耗。

Description

容器启动方法、存储介质和电子设备
技术领域
本发明涉及计算机技术领域,具体涉及一种容器启动方法、存储介质和电子设备。
背景技术
随着计算机技术和云计算的不断发展,容器技术也在高速发展。容器的启动需要依赖镜像,而镜像通常存储在镜像仓库中。因此容器启动时需要将镜像从镜像仓库中拉取到本地,再根据镜像创建并启动容器。因为镜像内容在镜像仓库中是分层压缩存储的,因此拉取镜像时需要将每层的整个压缩包拉取到本地磁盘,再解压镜像内容,这会耗费较长时间加载整个镜像,从而导致了容器启动的时间较长。当需要在大量服务器中启动容器时,会导致镜像仓库的处理压力过大,以及所在集群网络压力过大,从而导致每台服务器中的容器启动时间进一步增长。
目前,大多数做法是不断提高镜像仓库的处理能力,例如在镜像的拉取过程中引入P2P技术,这虽然提高了单层压缩包的拷贝速度,但是依然受制于镜像某层内容解压缩的时长。
发明内容
有鉴于此,本发明实施例提出一种容器启动方法、存储介质和电子设备,能够降低容器启动的时间,同时降低存储空间的消耗。
根据本发明实施例的第一方面,提供一种容器启动方法,所述方法包括:
响应于启动请求,获取待启动的容器的镜像标识;
根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径;以及
根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器。
优选地,所述元数据存储于元数据数据库中;
根据所述镜像标识获取所述镜像的元数据包括:
根据所述镜像标识从所述元数据数据库中获取所述镜像的元数据。
优选地,根据所述元数据加载所述镜像中的预定文件包括:
挂载镜像存储器,所述镜像存储器为存储所述元数据中所述镜像的存储器;以及
根据所述元数据中所述文件的存储路径访问所述镜像存储器,加载所述预定文件。
优选地,根据所述元数据中所述镜像的存储路径挂载镜像存储器包括:
利用分层文件***,将所述镜像的内容映射到容器运行目录。
优选地,所述预定文件为启动所述容器所必须的文件。
优选地,所述生成并启动容器包括:
利用符合容器开放标准OCI的Container和Runc,通过预定RootFS参数创建并启动容器。
优选地,所述方法还包括:
将在容器运行过程中被修改的所述预定文件存储在容器本地。
根据本发明实施例的第二方面,提供一种计算机可读存储介质,其上存储计算机程序指令,其中,所述计算机程序指令在被处理器执行时实现如第一方面中任一项所述的方法。
根据本发明实施例的第三方面,提供一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面中任一项所述的方法。
本发明实施例通过响应于启动请求,获取待启动的容器的镜像标识,并根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径,进而根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器。由此,无需加载整个镜像,只需要根据元数据中文件的存储路径就能够加载预定文件,创建并启动容器,从而,降低了容器启动的时间,同时降低了镜像对存储空间的消耗。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是现有技术的容器启动方法的数据流程图;
图2是本发明第一实施例的容器启动方法的流程图;
图3是本发明第一实施例的一个可选的实现方式中加载镜像中的预定文件的流程图;
图4是本发明第二实施例的容器启动方法的数据流程图;
图5是本发明实施例的***框架的示意图;
图6是本发明第三实施例的容器启动方法的流程图;
图7是本发明实施例的电子设备的示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则整个说明书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
虚拟化技术已经成为一种被公众广泛认可的服务器资源共享方式,它可以在按需构建操作***实例的过程中为***管理员提供极大的灵活性。起初,被广泛应用的虚拟化技术是虚拟机技术。每个虚拟机实例都能够独立运行任何其所支持的操作***而不受其他实例的影响。但由于每个虚拟机实例都相当于其所支持的操作***的完整副本,其中还可能包括大量的镜像,因此虚拟机占用了大量存储资源。当运行多个虚拟机实例时,会大幅降低虚拟机实例所在的服务器的性能。同时,虚拟机的可移植性也较差,***环境不同就可能导致虚拟机实例无法正常运行。因此,容器技术应运而生。容器技术与虚拟机技术相同,都具有较好的隔离性,使得对容器或虚拟机内部的镜像的修改不会对原始镜像产生影响。同时,对容器技术而言,在服务器中安装容器层后,无需加载操作***的完整副本,只需加载需要的镜像就可以运行容器,由此大大降低了对存储资源的占用。且容器的可移植性较好,在大部分操作***中,容器的运行可以不受限制。
图1是现有技术的容器启动方法的数据流程图。在本实施例中,容器为Container。如图1所示,服务器11需要对镜像1中的预定文件进行测试或修改,但服务器11中不包括镜像1中的预定文件,因此可以将镜像仓库12与服务器11直接进行挂载,并从镜像仓库12中将镜像1加载到服务器11,进而根据镜像1创建并启动容器1。同时,服务器11也可以对镜像4中的预定文件进行测试或修改,只需要将镜像仓库13通过网络与服务器11进行挂载,并从镜像仓库13中将镜像4加载到服务器11,进而根据镜像4创建并启动容器4。由此,就可以在服务器11中实现对镜像1中的预定文件和镜像4中的预定文件同时进行测试或修改。如果镜像1和镜像4占用的存储空间较大,无论是直接加载以上镜像还是通过网络加载以上镜像都会消耗大量的***资源,因此加载以上镜像的过程可能会消耗较长时间,由此导致容器启动的时间较长。且加载完毕后,镜像也会占用服务器11大量的存储空间。
图2是本发明第一实施例的容器启动方法的流程图。如图2所示,本实施例包括如下步骤:
步骤S100,响应于启动请求,获取待启动的容器的镜像标识。
在本步骤中,获取的镜像标识用于在后续获取镜像的存储路径。具体地,镜像标识可以为镜像名称,也可以为其他镜像标识。
步骤S200,根据镜像标识获取镜像的元数据。
元数据又称中介数据、中继数据,主要用于描述数据属性,用来支持如存储位置、历史数据、资源查找、文件记录等功能。在本实施例中,元数据用于表征镜像的存储路径和镜像内的文件的存储路径。优选地,可以将所有镜像的元数据存储在元数据数据库中,由此能够实现元数据的统一管理。需要获取镜像时,可以首先根据镜像标识从元数据数据库中获取镜像的元数据。
步骤S300,根据元数据加载镜像中的预定文件,创建并启动容器。
在本实施例中,预定文件为启动容器所必须的文件,根据预定文件就可以创建并启动容器。
图3是本发明第一实施例的一个可选的实现方式中加载镜像中的预定文件的流程图。如图3所示,在本实施例的一个可选的实现方式中,可以根据如下步骤加载镜像中的预定文件:
步骤S310,挂载镜像存储器。
在本实施例的一个可选的实现方式中,镜像可以存储在镜像存储器中,由此能够实现镜像的统一管理。具体地,镜像存储器可以预先与服务器进行挂载,也可以根据元数据库中镜像的存储路径与服务器进行挂载。可选地,镜像存储器可以直接与服务器进行挂载,由此可以在后续直接将镜像加载到服务器本地。可选地,镜像存储器也可以通过网络与服务器进行挂载,由此可以在后续通过网络将镜像加载到服务器本地。
容易理解,步骤S310可以作为步骤S300的子步骤执行,也可以与步骤S100同时执行或先后执行,本实施例不做限定。
步骤S320,根据元数据中文件的存储路径访问镜像存储器,加载预定文件。
镜像是文件的只读层的集合。通常会通过统一文件***,例如AUFS(Advancedmulti-layered Unification Filesystem,先进的多层统一文件***)或Overlay(叠合式文件***)将镜像中的多个只读层整合成高效的分层文件***。文件***为镜像提供一个统一的视角,因此用户在直接查看镜像时只能看到镜像的一个只读层。且由于镜像中需要的文件有限,加载整个镜像会占用大量的存储空间。因此,可以利用分层文件***将镜像的内容映射到容器运行目录,由此可以查看到镜像中的每一层,从而确定出需要的文件作为预定文件。
如果服务器中存在容器运行目录,可以将预定文件直接加载到容器运行目录中;如果服务器中不存在容器运行目录,则会先创建一个容器运行目录,后将预定文件加载到容器运行目录中。
经过上述步骤,可以无需加载整个镜像,只需根据文件的存储路径从镜像存储器中加载预定文件即可在后续生成并启动容器。由此,能够较明显地降低存储空间的消耗,同时降低容器启动的时间。
在本实施例的另一个可选的实现方式中,步骤S300还可以包括如下步骤:
步骤S330,利用符合容器开放标准OCI(Open Container Initiative)的Container和Runc,通过预定RootFS参数创建并启动容器。
在本实施例的一个可选的实现方式中,通过Docker(一个开源的应用容器引擎)创建容器并实现对容器的控制。其中,Container是一个中间交流组件,用于Docker Daemon(Docker的守护进程)和Runc的交互。Runc是容器的实际控制者,能够控制容器的创建、启动、停止等。RootFS(Root File System,根文件***)是容器运行所依赖的环境。由于镜像为只读层,创建容器的过程相当于在镜像上增加一个读写层,因此需要预先配置RootFS参数,从而使得容器可以在RootFS中正常运行。具体地,Docker通过Docker Client层接收用户的启动请求,并将启动请求发送至Docker Daemon层,Docker Daemon通过Container与Runc进行交互,并向Runc发送用户的指令,从而实现对容器的控制。例如,docker create指令用于创建容器,docker start指令用于控制容器启动。
本发明实施例通过响应于启动请求,获取待启动的容器的镜像标识,并根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径,进而根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器。由此,无需加载整个镜像,只需要根据元数据中文件的存储路径就能够加载预定文件,创建并启动容器,从而,降低了容器启动的时间,同时降低了镜像对存储空间的消耗。
图4是本发明第二实施例的容器启动方法的数据流程图。如图4所示,本实施例包括如下步骤:
步骤S100’,响应于启动请求,获取待启动的容器的镜像标识。
具体地,在本步骤中,获取容器422的镜像标识。在本实施例中,步骤S100’与步骤S100的实现方式相似,在此不再详细说明。
步骤S200’,根据镜像标识获取镜像的元数据。
具体地,镜像的元数据存储在元数据数据库41中,因此在本步骤中,根据镜像标识从元数据数据库41中获取镜像的元数据。其中元数据用于表征镜像的存储路径和镜像内的文件的存储路径。在本实施例中,步骤S200’与步骤S200的实现方式相似,在此不再详细说明。
步骤S300’,挂载镜像存储器。
具体地,镜像的内容存储在镜像存储器43中,镜像存储器43可以与服务器42直接挂载,也可以通过网络与服务器42实现挂载。优选地,可以利用分层文件***将镜像的内容映射到本地421(如图4中由镜像存储器43到本地421的虚线部分所示)。由此,可以查看镜像中的所有文件并确定出需要的预定文件。在本实施例中,步骤S300’与步骤S310的实现方式相似,在此不再详细说明。
容易理解,步骤S300’和步骤S100’可以同时执行,也可以先后执行,不必区分执行顺序。
步骤S400’,根据元数据中文件的存储路径访问镜像存储器,加载预定文件。
在本步骤中,无需加载整个镜像,只需根据文件的存储路径即可加载需要的预定文件。由此,能够降低容器启动的时间,同时降低镜像对存储空间的消耗。在本实施例中,步骤S400’与步骤S320的实现方式相似,在此不再详细说明。
步骤S500’,利用符合容器开放标准OCI的Container和Runc,通过预定RootFS参数创建并启动容器。
在本实施例中,Docker通过Docker Client层接收用户的启动请求,并将启动请求发送至Docker Daemon层,Docker Daemon通过Container与Runc进行交互,并向Runc发送用户的指令,从而实现对容器的控制。更具体地,docker根据加载到本地421中的预定文件生成并启动容器422。在本实施例中,步骤S500’与步骤S330的实现方式相似,在此不再详细说明。
本发明实施例通过响应于启动请求,获取待启动的容器的镜像标识,并根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径,进而根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器。由此,无需加载整个镜像,只需要根据元数据中文件的存储路径就能够加载预定文件,创建并启动容器,从而,降低了容器启动的时间,同时降低了镜像对存储空间的消耗。
图5是本发明实施例的***框架的示意图。如图5所示,当用户推送镜像时,并不向元数据数据库51推送镜像内容文件本身,而是推送描述该镜像的元数据。所述元数据包括镜像的存储路径和所镜像内各层文件的存储路径。同时,将镜像复制至挂载在本地的影像存储器52。当用户启动容器需要拉取镜像时,只需从元数据数据库51中拉取镜像元数据,从而获得镜像的存储路径和所述镜像内各层文件的存储路径。拉取元数据完毕后,无需拉取镜像的实体内容,只需按照元数据描述的各层文件路径进行分层文件***挂载启动容器即可。
在所有待启动容器的服务器上挂载镜像存储器,以将镜像存储器挂载在所有服务器的/var/lib/docker_image_storage下为例进行说明。独立设置Web服务RegistryAPIService,RegistryAPIService用于提供替代镜像仓库的API服务,具有较高的兼容性。额外增加两个API:(1)存储镜像预定层fsLayer在/var/lib/docker_image_storage下的相对路径,例如名称为putFsLayer;(2)查询预定镜像层fsLayer在/var/lib/docker_image_storage下的相对路径,例如名称为getFsLayer。
在容器启动前,服务器分别获取镜像对应各层的sha256哈希值a,并根据sha256哈希值,在容器的layerdb中查询到对应的各存储文件夹的sha256哈希值b。根据各哈希值b,服务器可以在容器的***文件夹中找到对应的各存储路径c,并将c存储至/var/lib/docker_image_storage,从而调用RegistryAPIService的putFsLayer,将各sha256哈希值a对应的层所对应的相对路径sha256哈希值b存储到数据库,并生成镜像对应的元数据MENIFEST,调用RegistryAPIService的PUT MANIFEST API,将MENIFEST推送至元数据数据库。
在启动容器时,服务器响应于启动请求,获取待启动的容器的镜像标识,并根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径,从而根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器。
在获取元数据时,服务器可以调用RegistryAPIService的GET MANIFEST API,从而根据镜像标识拉取所述镜像对应的元数据MANIFEST。
在建立容器的layerdb时,服务器可以根据哈希值a检测该层是否存在;如果存在,则处理下一层,否则调用RegistryAPIService服务的getFsLayer API,根据镜像层的sha256哈希值a获取对应的相对路径哈希值b。根据哈希值b,服务器检测该层实体内容文件夹是否存在;如果存在,则处理下一层,否则,根据哈希值b,将该层实体内容在/var/lib/docker_image_storage下的目录只读挂载到容器***文件夹下(例如:/var/lib/docker/aufs/diff/下,路径根据容器所在文件夹和使用的联合文件***来确定),从而建立该层的layerdb,一般建立在/var/lib/docker/image/aufs/layerdb/sha256/<该层的sha256哈希值a>下(该路径根据容器所在文件夹和使用的联合文件***来确定),直至对镜像的全部层处理完毕。
图6是本发明第三实施例的容器启动方法的流程图。如图6所示,本发明实施例包括如下步骤:
步骤S100”,响应于启动请求,获取待启动的容器的镜像标识。
在本实施例中,步骤S100”与步骤S100的实现方式相似,在此不再赘述。
步骤S200”,根据镜像标识获取镜像的元数据。
在本实施例中,步骤S200”与步骤S200的实现方式相似,在此不再赘述。
步骤S300”,根据元数据加载镜像中的预定文件,创建并启动容器。
在本实施例中,步骤S300”与步骤S300的实现方式相似,在此不再赘述。
步骤S400”,将在容器运行过程中被修改的预定文件存储在容器本地。
在容器中的预定文件被修改后,可以将预定文件存储在本地。具体地,可以存储在容器运行目录中。由此,可以保证预定文件的修改仅在容器所在的服务器内进行,镜像存储器中的预定文件不会被修改。同时,需要对预定文件进行再次测试或修改时,无需再次从镜像存储器中加载,可以进一步降低容器启动的时间。
本实施例同样包括两个可选的实现方式,且实现方式与本发明第一实施例的两个可选的实现方式相似,在此不再赘述。
本发明实施例通过响应于启动请求,获取待启动的容器的镜像标识,并根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径,进而根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器,并将在容器运行过程中被修改的预定文件存储在容器本地。由此,无需加载整个镜像,只需要根据元数据中文件的存储路径就能够加载预定文件,创建并启动容器,从而,可以在保证原有镜像不被修改的同时降低容器启动的时间和镜像对存储空间的消耗。
图7是本发明实施例的电子设备的示意图。图7所示的电子设备为通用数据处理装置,其包括通用的计算机硬件结构,其至少包括处理器71和存储器72。处理器71和存储器72通过总线73连接。存储器72适于存储处理器71可执行的指令或程序。处理器71可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器71通过执行存储器72所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线73将上述多个组件连接在一起,同时将上述组件连接到显示控制器74和显示装置以及输入/输出(I/O)装置75。输入/输出(I/O)装置75可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(I/O)装置75通过输入/输出(I/O)控制器76与***相连。
其中,存储器72可以存储软件组件,例如操作***、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
上述根据本发明实施例的方法、设备(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为***、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“***”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体***、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行***、设备或装置使用的程序或结合指令执行***、设备或装置使用的程序的任意有形介质。
计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行***、设备或装置使用的或结合指令执行***、设备或装置使用的程序进行通信、传播或传输。
用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++、PHP、Python等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种容器启动方法,其特征在于,所述方法包括:
响应于启动请求,获取待启动的容器的镜像标识;
根据所述镜像标识获取所述镜像的元数据,所述元数据用于表征所述镜像的存储路径和所述镜像内的文件的存储路径;以及
根据所述元数据加载所述镜像中的预定文件,创建并启动所述容器。
2.根据权利要求1所述的容器启动方法,其特征在于,所述元数据存储于元数据数据库中;
根据所述镜像标识获取所述镜像的元数据包括:
根据所述镜像标识从所述元数据数据库中获取所述镜像的元数据。
3.根据权利要求1所述的容器启动方法,其特征在于,根据所述元数据加载所述镜像中的预定文件包括:
挂载镜像存储器,所述镜像存储器为存储所述镜像的存储器;以及
根据所述元数据中所述文件的存储路径访问所述镜像存储器,加载所述预定文件。
4.根据权利要求3所述的容器启动方法,其特征在于,根据所述元数据中所述镜像的存储路径挂载镜像存储器包括:
利用分层文件***,将所述镜像的内容映射到容器运行目录。
5.根据权利要求1所述的容器启动方法,其特征在于,所述预定文件为启动所述容器所必须的文件。
6.根据权利要求1所述的容器启动方法,其特征在于,所述生成并启动容器包括:
利用符合容器开放标准OCI的Container和Runc,通过预定RootFS参数创建并启动容器。
7.根据权利要求1所述的容器启动方法,其特征在于,所述方法还包括:
将在容器运行过程中被修改的所述预定文件存储在容器本地。
8.一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如权利要求1-7中任一项所述的方法。
9.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1-7中任一项所述的方法。
CN201910943364.6A 2019-09-30 2019-09-30 容器启动方法、存储介质和电子设备 Pending CN110688174A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910943364.6A CN110688174A (zh) 2019-09-30 2019-09-30 容器启动方法、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910943364.6A CN110688174A (zh) 2019-09-30 2019-09-30 容器启动方法、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN110688174A true CN110688174A (zh) 2020-01-14

Family

ID=69111318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910943364.6A Pending CN110688174A (zh) 2019-09-30 2019-09-30 容器启动方法、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN110688174A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084006A (zh) * 2020-09-10 2020-12-15 杭州海康威视***技术有限公司 一种镜像包处理方法、装置及电子设备
CN112799740A (zh) * 2021-02-08 2021-05-14 联想(北京)有限公司 一种控制方法、装置及电子设备
CN112948062A (zh) * 2021-05-13 2021-06-11 鹏城实验室 设备文件的透传方法、设备及计算机存储介质
CN113434244A (zh) * 2020-03-18 2021-09-24 阿里巴巴集团控股有限公司 实例创建和数据处理方法、设备、***及存储介质
CN113687915A (zh) * 2021-08-16 2021-11-23 远景智能国际私人投资有限公司 容器运行方法、装置、设备及存储介质
CN114281480A (zh) * 2021-12-27 2022-04-05 长春吉大正元信息技术股份有限公司 一种容器镜像文件的处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511943A (zh) * 2015-12-03 2016-04-20 华为技术有限公司 一种Docker容器运行方法和装置
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
CN107329792A (zh) * 2017-07-04 2017-11-07 北京奇艺世纪科技有限公司 一种Docker容器启动方法及装置
CN108681434A (zh) * 2018-05-24 2018-10-19 中科边缘智慧信息科技(苏州)有限公司 一种容器持久存储挂载方法
US20180349150A1 (en) * 2017-06-05 2018-12-06 International Business Machines Corporation Facilitating multi-inheritance within a single inheritance container-based environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511943A (zh) * 2015-12-03 2016-04-20 华为技术有限公司 一种Docker容器运行方法和装置
CN106506587A (zh) * 2016-09-23 2017-03-15 中国人民解放军国防科学技术大学 一种基于分布式存储的Docker镜像下载方法
US20180349150A1 (en) * 2017-06-05 2018-12-06 International Business Machines Corporation Facilitating multi-inheritance within a single inheritance container-based environment
CN107329792A (zh) * 2017-07-04 2017-11-07 北京奇艺世纪科技有限公司 一种Docker容器启动方法及装置
CN108681434A (zh) * 2018-05-24 2018-10-19 中科边缘智慧信息科技(苏州)有限公司 一种容器持久存储挂载方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蒋迪: "KVM私有云架构设计与实践", 上海交通大学出版社, pages: 133 - 135 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434244A (zh) * 2020-03-18 2021-09-24 阿里巴巴集团控股有限公司 实例创建和数据处理方法、设备、***及存储介质
CN113434244B (zh) * 2020-03-18 2022-08-30 阿里巴巴集团控股有限公司 实例创建和数据处理方法、设备、***及存储介质
CN112084006A (zh) * 2020-09-10 2020-12-15 杭州海康威视***技术有限公司 一种镜像包处理方法、装置及电子设备
CN112084006B (zh) * 2020-09-10 2024-02-02 杭州海康威视***技术有限公司 一种镜像包处理方法、装置及电子设备
CN112799740A (zh) * 2021-02-08 2021-05-14 联想(北京)有限公司 一种控制方法、装置及电子设备
CN112948062A (zh) * 2021-05-13 2021-06-11 鹏城实验室 设备文件的透传方法、设备及计算机存储介质
CN112948062B (zh) * 2021-05-13 2021-07-13 鹏城实验室 设备文件的透传方法、设备及计算机存储介质
CN113687915A (zh) * 2021-08-16 2021-11-23 远景智能国际私人投资有限公司 容器运行方法、装置、设备及存储介质
CN113687915B (zh) * 2021-08-16 2023-07-21 远景智能国际私人投资有限公司 容器运行方法、装置、设备及存储介质
CN114281480A (zh) * 2021-12-27 2022-04-05 长春吉大正元信息技术股份有限公司 一种容器镜像文件的处理方法、装置、设备及存储介质
CN114281480B (zh) * 2021-12-27 2022-12-13 长春吉大正元信息技术股份有限公司 一种容器镜像文件的处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN110688174A (zh) 容器启动方法、存储介质和电子设备
AU2017253672C1 (en) Automatically updating a hybrid application
US10242023B2 (en) Programming model for synchronizing browser caches across devices and web services
US9880889B2 (en) Virtual application extension points
WO2019015288A1 (zh) 数据持久化处理的方法、装置、***及可读存储介质
US10318318B2 (en) Extending user interface of a web console
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
US9201606B1 (en) System and method for automating data migrations between heterogeneous architectures
US8316120B2 (en) Applicability detection using third party target state
CN106257418B (zh) 用于通过使用辅助应用来评价应用的技术
US9513762B1 (en) Static content updates
US9639340B2 (en) System and method of loading virtual machines
US20070234359A1 (en) Isolation of application execution
US9092292B2 (en) Shared application binary storage
US20140089909A1 (en) Dynamically building locale objects at run-time
US11418555B1 (en) Systems and methods for streaming an application via object storage
CN113127430B (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
US8924963B2 (en) In-process intermediary to create virtual processes
US10162626B2 (en) Ordered cache tiering for program build files
WO2016039757A1 (en) Information object system
CN118132204A (zh) 一种容器管理方法、装置、设备及介质
CN115686547A (zh) 前端页面管理方法、装置、设备及介质
CN113672247A (zh) 宿主机通过容器访问Ceph集群的方法、装置、介质和设备
CN118057306A (zh) 安装包的生成方法、装置、服务器、介质和程序产品
CN116204749A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200114