CN114217908B - 容器启动方法、系统、装置及设备 - Google Patents

容器启动方法、系统、装置及设备 Download PDF

Info

Publication number
CN114217908B
CN114217908B CN202210164331.3A CN202210164331A CN114217908B CN 114217908 B CN114217908 B CN 114217908B CN 202210164331 A CN202210164331 A CN 202210164331A CN 114217908 B CN114217908 B CN 114217908B
Authority
CN
China
Prior art keywords
target
container
file
program file
type
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
CN202210164331.3A
Other languages
English (en)
Other versions
CN114217908A (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.)
Guangzhou Quwan Network Technology Co Ltd
Original Assignee
Guangzhou Quwan 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 Guangzhou Quwan Network Technology Co Ltd filed Critical Guangzhou Quwan Network Technology Co Ltd
Priority to CN202210164331.3A priority Critical patent/CN114217908B/zh
Publication of CN114217908A publication Critical patent/CN114217908A/zh
Application granted granted Critical
Publication of CN114217908B publication Critical patent/CN114217908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • 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/45575Starting, stopping, suspending or resuming 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/45579I/O management, e.g. providing access to device drivers or storage

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)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种容器启动方法、系统、装置及设备,该方法包括:在检测到需要启动目标容器时,在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包,以供后续从共享存储中获取所需的程序文件及依赖包;获取并运行所述目标容器对应的基础系统镜像文件;获取所述目标容器对应的文件目录,根据文件目录,确定需要运行的程序文件及依赖包,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;最后,可以根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。可见,本申请可以实现启动容器。

Description

容器启动方法、系统、装置及设备
技术领域
本申请涉及计算机领域,更具体地说,涉及一种容器启动方法、系统、装置及设备。
背景技术
容器技术作为一种能够有效地间隔进程及资源的技术,在计算机领域中,已经得到了广泛的应用。根据实际应用场景的需求,及需要运行的应用程序,可以在各容器上分别运行应用程序,如此,即使应用程序在同一设备上运行,通过使用容器技术,也可以实现各应用程序如同在独立的机器上运行一样。
而要实现在各容器上分别运行应用程序,最基础的是,如何实现启动容器。启动容器是使用容器技术的基础。因而,如何启动容器成为了备受计算机领域中的技术人员关注的问题。
发明内容
有鉴于此,本申请提供了一种容器启动方法、系统、装置及设备,用于实现启动容器。
为了实现上述目的,现提出的方案如下:
一种容器启动方法,包括:
当检测到需要启动目标容器时,在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包;
获取并运行所述目标容器对应的基础系统镜像文件;
获取所述目标容器对应的文件目录,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;
根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
优选地,根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,包括:
根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件中的目标主程序文件,以启动目标容器的基础版;
响应用户选择目标容器的目标功能的操作,根据所述文件目录及所述共享存储,获取并运行所述目标功能对应的目标程序文件和/或目标依赖包,以实现启动具备目标功能的目标容器。
优选地,在根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包之后,还包括:
将所述基础系统镜像文件、所述目标程序文件和/或所述目标依赖包存于内存中。
优选地,获取并运行所述目标容器对应的基础系统镜像文件,包括:
判断内存中是否存有与所述目标容器对应的基础系统镜像文件;
若所述内存中存有与所述目标容器对应的基础系统镜像文件,从内存中获取并运行所述目标容器对应的基础系统镜像文件;
若所述内存中并未存有与所述目标容器对应的基础系统镜像文件,从容器镜像仓库中获取并运行所述目标容器对应的基础系统镜像文件。
优选地,根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,包括:
根据所述文件目录中各个类型与各个容器之间的对应关系,确定目标容器对应的类型,所述类型包括目标程序文件类型和/或目标依赖包类型;
基于所述共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件,和/或与所述目标依赖包类型匹配的目标依赖包,以启动所述目标容器。
优选地,在基于所述共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件,和/或与所述目标依赖包类型匹配的目标依赖包之前,还包括:
判断内存中是否存在与所述目标程序文件类型对应的程序文件,及与所述目标依赖包类型对应的依赖包;
当内存中并未存有与所述目标程序文件类型对应的程序文件时,返回执行基于所述共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件的步骤;
当内存中存有与所述目标程序文件类型对应的程序文件时,从内存中获取,并运行与所述目标程序文件类型对应的程序文件;
当内存中并未存有与所述目标依赖包类型对应的依赖包时,返回执行基于所述共享存储,获取并运行与所述目标依赖包类型匹配的目标依赖包的步骤;
当内存中存有与所述目标依赖包类型对应的依赖包时,从内存中获取,并运行与所述目标依赖包类型对应的依赖包。
优选地,所述当检测到需要启动目标容器时,在目标容器节点上挂载共享存储,包括:
当需要启动多个目标容器时,在多个目标容器节点上挂载同一共享存储。
一种容器启动系统,包括:容器打包设备和容器启动设备;
所述容器打包设备使用编译脚本生成各个容器对应的程序文件、依赖包及基础系统镜像文件;
所述容器打包设备将所述各个容器对应的程序文件及依赖包打包上传至共享存储中;
所述容器打包设备在共享存储生成各个容器对应的文件目录,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;
所述容器启动设备用于采用上述的任一项容器启动方法,启动容器。
一种容器启动装置,包括:
共享存储挂载单元,用于当检测到需要启动目标容器时,在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包;
镜像文件运行单元,用于获取并运行所述目标容器对应的基础系统镜像文件;
目录获取单元,用于获取所述目标容器对应的文件目录,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;
操作响应单元,用于根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
一种容器启动设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述的容器启动方法的各个步骤。
从上述的技术方案可以看出,本申请提供的容器启动方法,在检测到需要启动目标容器时,首先,可以在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包,以供后续从共享存储中获取所需的程序文件及依赖包;随之,可以获取并运行所述目标容器对应的基础系统镜像文件;随后,可以获取所述目标容器对应的文件目录,可以根据文件目录,确定需要运行的程序文件及依赖包,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;最后,可以根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。可见,本申请可以实现启动容器。
此外,本申请将多个容器对应的程序文件及依赖包存储于共享存储中。如此,当需要启动目标容器时,可以从共享存储中获取目标容器对应的目标程序文件及目标依赖包,即,可以按需从共享存储中获取程序文件及依赖包,从而实现按需启动容器。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例公开的一种容器启动方法流程图;
图2为本申请实施例公开的一种共享存储内容示意图;
图3为本申请实施例公开的又一种容器启动方法流程图;
图4为本申请实施例公开的一种容器启动装置结构框图;
图5为本申请实施例公开的一种容器启动设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
接下来结合图1及图2对本申请的容器启动方法进行详细介绍,包括如下步骤:
步骤S110、当检测到需要启动目标容器时,在目标容器节点上挂载共享存储。
具体地,所述共享存储中包含多个容器对应的程序文件及依赖包。示例如图2,共享存储1中包含多个容器的程序文件及依赖包。且一个容器对应多个程序文件及依赖包,同一个程序文件或依赖包可能对应于多个容器,示例如图2,容器A及容器B对应于多个程序文件及依赖包,其中,一个程序文件及一个依赖包同时对应于容器A 及容器B。
其中,可以通过多种技术实现共享存储,此处提供其中一种可选的方式,例如,通过对象存储技术实现共享存储。
当检测到需要启动目标容器时,可以将空闲的节点作为目标容器节点,通过容器集群将共享存储挂载在该目标容器节点上。此时,可以读取及获取共享存储中的程序文件及依赖包。
因而,当检测到不需要启动目标容器时,只需要卸载该目标容器节点上的共享存储即可。
步骤S120、获取并运行所述目标容器对应的基础系统镜像文件。
具体地,容器镜像仓库中存有各个容器对应的基础系统镜像文件,可以从容器镜像仓库中获取目标容器对应的基础系统镜像文件,并运行该基础系统镜像文件,可以将获取的基础系统镜像文件存储于内存中。
其中,为了防止运行过程中对基础系统镜像文件进行更改,基础系统镜像文件可以为只读文件。
其中,基础系统镜像文件可以为只包含操作系统的文件。
步骤S130、获取所述目标容器对应的文件目录。
具体地,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系。
步骤S140、根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
具体地,可以根据文件目录,按需从共享存储中获取并运行启动该目标容器需要的程序文件及依赖包,以完成容器的启动。其中,可以将文件目录中所记载的程序文件及依赖包的地址挂载至容器启动目录中,并指定入口程序,从而实现按需从共享存储中获取并运行启动该目标容器需要的程序文件及依赖包。
其中,仅获取并运行启动目标容器时所需的目标程序文件和/或目标依赖包。
从上述的技术方案可以看出,本申请提供的容器启动方法,在检测到需要启动目标容器时,首先,可以在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包,以供后续从共享存储中获取所需的程序文件及依赖包;随之,可以获取并运行所述目标容器对应的基础系统镜像文件;随后,可以获取所述目标容器对应的文件目录,可以根据文件目录,确定需要运行的程序文件及依赖包,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;最后,可以根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。可见,本申请可以实现启动容器。
此外,本申请将多个容器对应的程序文件及依赖包存储于共享存储中。如此,当需要启动目标容器时,可以从共享存储中获取目标容器对应的目标程序文件及目标依赖包,即,可以按需从共享存储中获取程序文件及依赖包,从而实现按需启动容器。
在本申请的一些实施例中,对步骤S110、当检测到需要启动目标容器时,在目标容器节点上挂载共享存储过程进行说明。
具体地,在实际的使用场景中,可能需要同时启动多个目标容器。基于此,当检测到需要启动多个目标容器时,可以在多个目标容器节点上挂载同一共享存储。
从上述技术方案可以看出,本申请可以根据同一个共享存储,同时启动多个目标容器。可见,本申请在实际使用过程中效率较高,可以同时启动多个容器。
进一步地,可以在同一个服务器中的多个目标容器节点上挂载同一个共享存储,以启动多个目标容器。其中,各个目标容器对应的程序文件及依赖包之间可能存在部分程序文件或依赖包是相同的。由于服务器通过各个目标容器节点从共享存储中获取程序文件及依赖包,以实现启动各个目标容器,基于此,当启动多个目标容器,且多个目标容器之间对应的程序文件或依赖包存在相同时,服务器仅需通过目标容器节点从共享存储中获取一次相同的程序文件或依赖包,随后,目标容器可以共用该相同的程序文件或依赖包,以实现启动多个目标容器。因而,能够更快速地启动多个目标容器。
在本申请的一些实施例中,可以通过多种方式,执行步骤S140、根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。此处提供其中两种可选的方式。接下来,对执行过程进行详细说明。
第一种;
S10、根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件中的目标主程序文件,以启动目标容器的基础版。
具体地,根据文件目录可以在共享存储的多个程序文件中确定与目标容器对应的程序文件。且,根据文件目录可以在多个与目标容器对应的程序文件中,确定目标容器的主程序文件,并以此作为目标主程序文件。
当运行所述目标主程序文件后,可以启动目标容器的基础版。
S11、响应用户选择目标容器的目标功能的操作,根据所述文件目录及所述共享存储,获取并运行所述目标功能对应的目标程序文件和/或目标依赖包,以实现启动具备目标功能的目标容器。
具体地,一个容器可能具备多种功能,当实际使用时,可能仅需要使用容器的部分功能,此时,并不需要启动具备全部功能的容器,仅需启动具备所需功能的容器即可。
根据文件目录可以在共享存储的多个程序文件及依赖包中,确定与目标容器的目标功能对应的程序文件及依赖包。
当从共享存储中,获取并运行与目标容器的目标功能对应的程序文件及依赖包时,可以启动具备目标功能的目标容器。
第二种;
S20、根据所述文件目录中各个类型与各个容器之间的对应关系,确定目标容器对应的类型,所述类型包括目标程序文件类型和/或目标依赖包类型。
具体地,由于文件目录中存储有各个类型与各个容器之间的对应关系,且类型可以包括目标程序文件类型及目标依赖包类型,因而,可以根据文件目录确定目标容器对应的目标程序文件类型和/或目标依赖包类型。
S21、基于所述共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件,和/或与所述目标依赖包类型匹配的目标依赖包,以启动所述目标容器。
具体地,可以在共享存储中查找与所述目标程序文件类型匹配的目标程序文件,随后,通过共享存储获取并运行该目标程序文件。
可以在共享存储中查找与所述目标依赖包类型匹配的目标依赖包,随后,通过共享存储获取并运行该目标依赖包。
由上述的技术方案可以看出,相比于上一个实施例,本实施例提供了两种根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包的可选的方式。第一种执行方式,考虑到在实际的应用场景中,可能仅需要启动具备部分功能的目标容器即可,不需要启动具备全部功能的目标容器。因而,可以根据文件目录及共享存储,获取并运行目标容器对应的目标主程序文件,及目标功能对应的目标程序文件和/或目标依赖包。可见,通过第一种方式可以仅获取并运行目标容器对应的目标主程序文件,及目标功能对应的目标程序文件和/或目标依赖包,不需要获取并运行非必要功能对应的程序文件及依赖包,节省了时间及启动容器的繁琐过程,从而实现快速地启动容器。
第二种执行方式,通过文件目录中程序文件类型及依赖包类型与容器之间的对应关系,确定需要从共享存储中获取的程序文件类型及依赖包类型。此后,从共享存储中获取并运行与所述目标程序文件类型匹配的目标程序文件,和/或与所述目标依赖包类型匹配的目标依赖包,以此实现启动目标容器。可见,通过上述的第二种方式可以更好地从共享存储中选取与目标容器对应的程序文件及依赖包,从而更易于启动目标容器。
在本申请的一些实施例中,考虑到获取基础系统镜像文件、目标程序文件及目标依赖包后可以将基础系统镜像文件、目标程序文件和/或目标依赖包存储于内存中,以便后续启动容器时,可以直接从内存中获取并运行所需的基础系统镜像文件、程序文件和/或依赖包,从而节省启动容器的时间。因而,可以在步骤S140、根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包之后,可以将基础系统镜像文件、目标程序文件和/或目标依赖包存于内存中。
具体地,可以通过多种方式进行存储。例如,可以根据容器的不同对基础系统镜像文件、程序文件及依赖包进行分类存储,在同一容器下可以根据功能的不同对程序文件及依赖包进行分类存储。再如,可以根据文件的不同进行存储,即,基础系统镜像文件、程序文件及依赖包分别存储于内存不同的模块中。
由上述的技术方案可以看出,相比于上一个实施例,本实施例增加了将获取的基础系统镜像文件、程序文件和/或依赖包存储于内存中的一种可选的方式。由于同一基础系统镜像文件、同一程序文件或同一依赖包可能对应于多个不同的容器,那么,若后续启动容器所需的基础系统镜像文件、程序文件及依赖包在内存中已存有时,可以直接从内存中获取并运行,节省了从共享存储中获取的时间。可见,通过上述的方式,能够进一步地节省启动容器的时间,实现更快速地启动容器。
在本申请的一些实施例中,部分基础系统镜像文件、程序文件及依赖包可以直接从内存中获取,从而更为节省启动容器的时间。接下来将结合图3对该过程进行详细说明。
步骤S210、当检测到需要启动目标容器时,在目标容器节点上挂载共享存储。
本步骤对应于上述步骤S110,详细参照前述介绍,此处不再赘述。
步骤S220、判断内存中是否存有与所述目标容器对应的基础系统镜像文件。若是,则执行步骤S230,若否,则执行步骤S240。
具体地,不同的容器可能对应于同一个基础系统镜像文件。因而,可以判断内存中是否存有与所述目标容器对应的基础系统镜像文件。
步骤S230、从内存中,获取并运行所述目标容器对应的基础系统镜像文件。
具体地,当内存中存有与目标容器对应的基础系统镜像文件,可以从内存中获取并运行所述目标容器对应的基础系统镜像文件。
步骤S240、从容器镜像仓库中,获取并运行所述目标容器对应的基础系统镜像文件。
若内存中并未存有与目标容器对应的基础系统镜像文件,可以从容器镜像仓库中获取并运行所述目标容器对应的基础系统镜像文件。
步骤S250、获取所述目标容器对应的文件目录。
本步骤对应于上述步骤S120,详细参照前述介绍,此处不再赘述。
步骤S260、根据所述文件目录中各个类型与各个容器之间的对应关系,确定目标容器对应的类型,所述类型包括目标程序文件类型和/或目标依赖包类型。
本步骤对应于上述步骤S20,详细参照前述介绍,此处不再赘述。
步骤S270、判断内存中是否存在与所述目标程序文件类型对应的程序文件。若是,则执行步骤S280,若否,则执行步骤S290。
具体地,同一程序文件可能对应于不同的容器。因而,可以判断内存中是否存在与所述目标程序文件类型对应的程序文件。
步骤S280、从内存中获取,并运行与所述目标程序文件类型对应的程序文件。
具体地,若内存中存有与目标程序文件类型对应的程序文件,可以从内存中获取,并运行目标程序文件类型对应的程序文件。
步骤S290、基于所述共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件。
具体地,若内存中并未存有与所述目标程序文件类型对应的程序文件,则可以基于共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件。
步骤S300、判断内存中是否存在与所述目标依赖包类型对应的依赖包。若是,则执行步骤S310,若否,则执行步骤S320。
具体地,同一依赖包可能对应于不同的容器。因而,可以判断内存中是否存在与所述目标依赖包类型对应的依赖包。
步骤S310、从内存中获取,并运行与所述目标依赖包类型对应的依赖包。
具体地,若内存中存有与目标依赖包类型对应的依赖包,可以从内存中获取,并运行目标依赖包类型对应的依赖包。
步骤S320、基于所述共享存储,获取并运行与所述目标依赖包类型对应的依赖包。
具体地,若内存中并未存有与所述目标依赖包类型对应的依赖包,则可以基于共享存储,获取并运行与所述目标依赖包类型匹配的依赖包。
由上述的技术方案可以看出,相比于上一个实施例,本实施例提供了一种可以从内存中获取目标容器对应的基础系统镜像文件、程序文件及依赖包的可选的方式。当内存中存有基础系统镜像文件、程序文件或依赖包时,可以通过上述的方式,进一步地节省启动容器的时间,实现快速启动容器。
接下来,将对本申请的容器启动系统进行详细说明,下文描述的容器启动系统与上文描述的容器启动方法可相互对应参照。
具体地,该系统可以包括容器打包设备和容器启动设备。
其中,容器打包设备可以为电子设备如PC端、IPAD等,容器启动设备可以为服务设备。
容器打包设备能够将各个容器对应的程序文件及依赖包上传至对象存储中,以供容器启动设备使用。
容器启动设备可以通过上述的容器启动方法实现启动容器。其中,可以是通过单台服务器,也可以通过多台服务器组成的服务集群实现启动容器。
接下来,对容器打包设备上传各个容器对应的程序文件及依赖包的过程进行说明。
S30、使用编译脚本生成各个容器对应的程序文件、依赖包及基础系统镜像文件。
具体地,可以使用多种编译脚本生成各个容器对应的程序文件、依赖包及基础系统镜像文件。此处,提供其中一种可选的方式,例如,使用CICD(Continuous Integrationcontinuous Delivery,持续集成支付)编译脚本可以从代码仓库中获取容器应用的代码数据,随后,可以进行编译和构建,生成程序文件及依赖包。
S31、将所述各个容器对应的程序文件及依赖包打包上传至共享存储中。
具体地,可以将生成的各个容器对应的程序文件及依赖包打包上传至共享存储中。
S32、在共享存储生成各个容器对应的文件目录,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系。
具体地,该容器打包设备可以使用CICD编译脚本在共享存储中创建文件目录。
其中,该文件目录中可以包含共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系。
从上述技术方案可以看出,本申请中的容器打包设备可以使共享存储包含各个容器对应的程序文件及依赖包,并生成文件目录。当容器需要升级或重启时,设置更新文件目录及共享存储即可。程序文件及依赖包通过共享存储进行统一地管理,通过不同的程序文件存储容器不同的功能版本,从而实现目标容器的按需启动。
下面将对本申请提供的容器启动装置进行描述,下文描述的容器启动装置与上文描述的容器启动方法可相互对应参照。
首先,结合图4,对容器启动装置进行介绍,如图4所示,该容器启动装置可以包括:
共享存储挂载单元100,用于当检测到需要启动目标容器时,在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包;
镜像文件运行单元110,用于获取并运行所述目标容器对应的基础系统镜像文件;
目录获取单元120,用于获取所述目标容器对应的文件目录,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;
操作响应单元130,用于根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
进一步地,上述的操作响应单元可以包括:
主文件运行单元,用于根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件中的目标主程序文件,以启动目标容器的基础版;
功能启动单元,用于响应用户选择目标容器的目标功能的操作,根据所述文件目录及所述共享存储,获取并运行所述目标功能对应的目标程序文件和/或目标依赖包,以实现启动具备目标功能的目标容器。
进一步地,上述的容器启动装置还可以包括:
内存存储单元,用于将所述基础系统镜像文件、所述目标程序文件和/或所述目标依赖包存于内存中。
进一步地,上述的镜像文件运行单元可以包括:
镜像文件判断单元,用于判断内存中是否存有与所述目标容器对应的基础系统镜像文件;
镜像文件获取单元,用于若所述内存中存有与所述目标容器对应的基础系统镜像文件,从内存中获取并运行所述目标容器对应的基础系统镜像文件;
基础文件获取单元,用于若所述内存中并未存有与所述目标容器对应的基础系统镜像文件,从容器镜像仓库中获取并运行所述目标容器对应的基础系统镜像文件。
进一步地,上述的操作响应单元可以包括:
类型确定单元,用于根据所述文件目录中各个类型与各个容器之间的对应关系,确定目标容器对应的类型,所述类型包括目标程序文件类型和/或目标依赖包类型;
容器启动单元,用于基于所述共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件,和/或与所述目标依赖包类型匹配的目标依赖包,以启动所述目标容器。
进一步地,上述的容器启动装置还可以包括:
内存判断单元,用于判断内存中是否存在与所述目标程序文件类型对应的程序文件,及与所述目标依赖包类型对应的依赖包;
程序文件获取单元,用于当内存中并未存有与所述目标程序文件类型对应的程序文件时,返回执行基于所述共享存储,获取并运行与所述目标程序文件类型匹配的目标程序文件的步骤;
内存文件获取单元,用于当内存中存有与所述目标程序文件类型对应的程序文件时,从内存中获取,并运行与所述目标程序文件类型对应的程序文件;
依赖包获取单元,用于当内存中并未存有与所述目标依赖包类型对应的依赖包时,返回执行基于所述共享存储,获取并运行与所述目标依赖包类型匹配的目标依赖包的步骤;
内存依赖包获取单元,用于当内存中存有与所述目标依赖包类型对应的依赖包时,从内存中获取,并运行与所述目标依赖包类型对应的依赖包。
进一步地,上述的共享存储挂载单元可以包括:
第一共享存储挂载单元,用于当需要启动多个目标容器时,在多个目标容器节点上挂载同一共享存储。
本申请提供的容器启动装置可应用于容器启动设备,如服务器、PC终端等。可选的,图5示出了容器启动设备的硬件结构框图,参照图5,容器启动设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
当检测到需要启动目标容器时,在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包;
获取并运行所述目标容器对应的基础系统镜像文件;
获取所述目标容器对应的文件目录,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;
根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
当检测到需要启动目标容器时,在目标容器节点上挂载共享存储,所述共享存储中包含多个容器对应的程序文件及依赖包;
获取并运行所述目标容器对应的基础系统镜像文件;
获取所述目标容器对应的文件目录,所述文件目录中记载了共享存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器之间的对应关系;
根据所述文件目录及所述共享存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。本申请的各个实施例之间可以相互结合。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种容器启动方法,其特征在于,包括:
当检测到需要启动目标容器时,在目标容器节点上挂载对象存储,所述对象存储中包含多个容器对应的程序文件及依赖包,其中,同一程序文件及依赖包对应于一个或多个容器,一个容器对应于多个程序文件及依赖包;
获取并运行所述目标容器对应的基础系统镜像文件;
获取所述目标容器对应的文件目录,所述文件目录中记载了对象存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器的各个功能之间的对应关系;
根据所述文件目录及所述对象存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
2.根据权利要求1所述的方法,其特征在于,根据所述文件目录及所述对象存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,包括:
根据所述文件目录及所述对象存储,获取并运行所述目标容器对应的目标程序文件中的目标主程序文件,以启动目标容器的基础版;
响应用户选择目标容器的目标功能的操作,根据所述文件目录及所述对象存储,获取并运行所述目标功能对应的目标程序文件和/或目标依赖包,以实现启动具备目标功能的目标容器。
3.根据权利要求1所述的方法,其特征在于,在根据所述文件目录及所述对象存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包之后,还包括:
将所述基础系统镜像文件、所述目标程序文件和/或所述目标依赖包存于内存中。
4.根据权利要求1所述的方法,其特征在于,获取并运行所述目标容器对应的基础系统镜像文件,包括:
判断内存中是否存有与所述目标容器对应的基础系统镜像文件;
若所述内存中存有与所述目标容器对应的基础系统镜像文件,从内存中获取并运行所述目标容器对应的基础系统镜像文件;
若所述内存中并未存有与所述目标容器对应的基础系统镜像文件,从容器镜像仓库中获取并运行所述目标容器对应的基础系统镜像文件。
5.根据权利要求1所述的方法,其特征在于,根据所述文件目录及所述对象存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,包括:
根据所述文件目录中各个类型与各个容器的各个功能之间的对应关系,确定目标容器对应的类型,所述类型包括目标程序文件类型和/或目标依赖包类型;
基于所述对象存储,获取并运行与所述目标程序文件类型匹配的目标程序文件,和/或与所述目标依赖包类型匹配的目标依赖包,以启动所述目标容器。
6.根据权利要求5所述的方法,其特征在于,在基于所述对象存储,获取并运行与所述目标程序文件类型匹配的目标程序文件,和/或与所述目标依赖包类型匹配的目标依赖包之前,还包括:
判断内存中是否存在与所述目标程序文件类型对应的程序文件,及与所述目标依赖包类型对应的依赖包;
当内存中并未存有与所述目标程序文件类型对应的程序文件时,返回执行基于所述对象存储,获取并运行与所述目标程序文件类型匹配的目标程序文件的步骤;
当内存中存有与所述目标程序文件类型对应的程序文件时,从内存中获取,并运行与所述目标程序文件类型对应的程序文件;
当内存中并未存有与所述目标依赖包类型对应的依赖包时,返回执行基于所述对象存储,获取并运行与所述目标依赖包类型匹配的目标依赖包的步骤;
当内存中存有与所述目标依赖包类型对应的依赖包时,从内存中获取,并运行与所述目标依赖包类型对应的依赖包。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述当检测到需要启动目标容器时,在目标容器节点上挂载对象存储,包括:
当需要启动多个目标容器时,在多个目标容器节点上挂载同一对象存储。
8.一种容器启动系统,其特征在于,包括:容器打包设备和容器启动设备;
所述容器打包设备使用编译脚本生成各个容器的各个功能对应的程序文件、依赖包及基础系统镜像文件;
所述容器打包设备将所述各个容器的各个功能对应的程序文件及依赖包打包上传至对象存储中;
所述容器打包设备在对象存储生成各个容器的各个功能对应的文件目录,所述文件目录中记载了对象存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器的各个功能之间的对应关系;
所述容器启动设备用于采用权利要求1-7任一项容器启动方法,启动容器。
9.一种容器启动装置,其特征在于,包括:
对象存储挂载单元,用于当检测到需要启动目标容器时,在目标容器节点上挂载对象存储,所述对象存储中包含多个容器对应的程序文件及依赖包,其中,同一程序文件及依赖包对应于一个或多个容器,一个容器对应于多个程序文件及依赖包;
镜像文件运行单元,用于获取并运行所述目标容器对应的基础系统镜像文件;
目录获取单元,用于获取所述目标容器对应的文件目录,所述文件目录中记载了对象存储中各个程序文件及各个依赖包的类型,及各个类型与各个容器的各个功能之间的对应关系;
操作响应单元,用于根据所述文件目录及所述对象存储,获取并运行所述目标容器对应的目标程序文件和/或目标依赖包,以实现启动所述目标容器。
10.一种容器启动设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-7中任一项所述的容器启动方法的各个步骤。
CN202210164331.3A 2022-02-23 2022-02-23 容器启动方法、系统、装置及设备 Active CN114217908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210164331.3A CN114217908B (zh) 2022-02-23 2022-02-23 容器启动方法、系统、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210164331.3A CN114217908B (zh) 2022-02-23 2022-02-23 容器启动方法、系统、装置及设备

Publications (2)

Publication Number Publication Date
CN114217908A CN114217908A (zh) 2022-03-22
CN114217908B true CN114217908B (zh) 2022-07-15

Family

ID=80709326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210164331.3A Active CN114217908B (zh) 2022-02-23 2022-02-23 容器启动方法、系统、装置及设备

Country Status (1)

Country Link
CN (1) CN114217908B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115828231A (zh) * 2022-10-28 2023-03-21 广州汽车集团股份有限公司 应用程序运行方法、装置、车辆以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634657A (zh) * 2018-12-14 2019-04-16 武汉烽火信息集成技术有限公司 一种微服务打包部署方法及系统
CN110543311A (zh) * 2019-09-05 2019-12-06 曙光信息产业(北京)有限公司 一种镜像构建方法、装置及存储介质
CN113296792A (zh) * 2020-07-10 2021-08-24 阿里巴巴集团控股有限公司 存储方法、装置、设备、存储介质和系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902770B (zh) * 2012-09-26 2015-04-15 东软集团股份有限公司 一种镜像文件拼装方法及系统
CN108415795B (zh) * 2018-02-12 2019-04-05 人和未来生物科技(长沙)有限公司 一种容器Dockerfile、容器镜像快速生成方法及系统
US11163728B2 (en) * 2018-09-28 2021-11-02 International Business Machines Corporation Sharing container images utilizing a shared storage system
CN110442430B (zh) * 2019-08-06 2021-11-19 上海浦东发展银行股份有限公司信用卡中心 一种基于分布式存储容器云应用的发布方法
CN110673923A (zh) * 2019-09-06 2020-01-10 中国平安财产保险股份有限公司 Xwiki系统配置方法、系统及计算机设备
CN111736850B (zh) * 2020-07-21 2020-12-22 腾讯科技(深圳)有限公司 图像处理方法、装置、服务器及介质
CN112799780A (zh) * 2021-01-15 2021-05-14 中国银联股份有限公司 容器镜像共享方法、装置、服务器、设备及介质
CN113608800A (zh) * 2021-08-31 2021-11-05 北京字节跳动网络技术有限公司 项目启动方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109634657A (zh) * 2018-12-14 2019-04-16 武汉烽火信息集成技术有限公司 一种微服务打包部署方法及系统
CN110543311A (zh) * 2019-09-05 2019-12-06 曙光信息产业(北京)有限公司 一种镜像构建方法、装置及存储介质
CN113296792A (zh) * 2020-07-10 2021-08-24 阿里巴巴集团控股有限公司 存储方法、装置、设备、存储介质和系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Docker Container Deployment in Distributed Fog Infrastructures with Checkpoint/Restart;Arif Ahmed 等;《2020 8th IEEE International Conference on Mobile Cloud Computing, Services, and Engineering (MobileCloud)》;20200708;1-10 *
The state-of-the-art in container technologies: Application, orchestration and security;Emiliano Casalicchio 等;《Wiley Online Library》;20200119;1-21 *
三种模式应用迁移上云研究;王伟 等;《通信管理与技术》;20211015(第5期);55-58 *
基于Init-Less模式的Serverless冷启动优化方法研究;刘畅等;《计算机科学与应用》;20211230;第11卷(第12期);3136-3147 *
基于容器技术的天文应用软件自动部署方法;姚坤 等;《天文研究与技术》;20190731;第16卷(第3期);311-328 *

Also Published As

Publication number Publication date
CN114217908A (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
US10599413B2 (en) Method and device for identifying file
CN110968331B (zh) 应用程序运行的方法和装置
CN109614167B (zh) 一种管理插件的方法和系统
US20160191652A1 (en) Data storage method and apparatus
CN107957837B (zh) 网页应用程序的快捷方式生成方法、装置和终端设备
CN108540509B (zh) 一种终端浏览器的处理方法、装置及服务器、智能终端
CN108279940B (zh) 一种web容器中的模块加载方法和装置
CN104750528A (zh) 一种Android程序中的组件管理方法和装置
CN111930473A (zh) 在容器云上部署图像识别服务的方法与设备
CN114217908B (zh) 容器启动方法、系统、装置及设备
CN112100152A (zh) 业务数据处理方法、系统、服务器和可读存储介质
CN113504918A (zh) 设备树配置优化方法、装置、计算机设备和存储介质
CN112149035A (zh) 网站静态资源处理方法及装置
CN111949261A (zh) 高复用的应用开发配置方法及其系统
CN114416224A (zh) 一种在多微服务环境下调用微服务的方法及装置
CN113608800A (zh) 项目启动方法、装置、电子设备及存储介质
CN113821226A (zh) 一种onie系统安装方法、装置、设备及介质
CN110489138B (zh) 一种应用更新方法、装置和存储介质
CN111225032A (zh) 一种应用服务与文件服务分离的方法、系统、设备和介质
CN107783837B (zh) 一种进行存储扩展的方法、装置及电子设备
CN114064594B (zh) 数据处理方法和装置
CN111694596A (zh) 一种webpack环境中的入口路径打包方法以及打包装置
CN116339920B (zh) 基于云平台的信息处理方法、装置、设备及介质
WO2024099274A1 (zh) 数据处理方法、设备和存储介质
CN110213314B (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