CN108958930A - 容器资源的处理方法、装置及设备 - Google Patents
容器资源的处理方法、装置及设备 Download PDFInfo
- Publication number
- CN108958930A CN108958930A CN201810632097.6A CN201810632097A CN108958930A CN 108958930 A CN108958930 A CN 108958930A CN 201810632097 A CN201810632097 A CN 201810632097A CN 108958930 A CN108958930 A CN 108958930A
- Authority
- CN
- China
- Prior art keywords
- container
- personal code
- code work
- work
- code
- 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
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
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
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种容器资源的处理方法、装置及设备。
背景技术
Docker是一个开源的应用容器引擎,具有轻量级方便部署的优点。目前云平台普遍使用Docker技术实现向用户提供云服务,云平台是一个能够向用户提供容器资源的容器服务平台。
由于创建容器资源的时间较长,容器服务平台若在用户代码被调用时,临时为该用户代码创建容器并完成容器配置,会造成用户代码运行的延迟。目前,容器服务平台在向用户提供容器资源时,多采用预留容器资源的方式:用户向容器服务平台发出容器资源的使用申请,同时向容器服务平台提交需在容器中部署的用户代码,容器服务平台在接收到容器资源的使用申请后,为这一使用申请的用户代码创建容器资源,并完成容器资源的相关配置,在该用户代码被调用运行时,通过容器资源可以直接运行用户代码。
但是,这种预留容器资源的方式,在用户提交用户代码时,就将容器资源预留给该用户运行该用户代码使用,该容器资源无法用于运行其他的用户代码,造成容器资源的浪费。
发明内容
本发明提供一种容器资源的处理方法、装置及设备,用以解决预留容器资源的方式在用户提交用户代码时,就将容器资源预留给该用户运行该用户代码使用,该容器资源无法用于运行其他的用户代码,造成容器资源的浪费的问题。
本发明的一个方面是提供一种容器资源的处理方法,包括:
接收对用户代码的运行指令,所述运行指令至少包括所述用户代码的代码标识;
根据所述运行指令,为所述用户代码分配目标容器,所述目标容器为预先创建的容器资源池中空闲的容器资源;
将所述运行指令中的代码标识对应的用户代码和运行时文件挂载入所述目标容器;
启动所述目标容器运行所述用户代码。
本发明的另一个方面是提供一种容器资源的处理装置,包括:
接收模块,用于接收对用户代码的运行指令,所述运行指令至少包括所述用户代码的代码标识;
分配模块,用于根据所述运行指令,为所述用户代码分配目标容器,所述目标容器为预先创建的容器资源池中空闲的容器资源;
配置模块,用于将所述运行指令中的代码标识对应的用户代码和运行时文件挂载入所述目标容器;
启动模块,用于启动所述目标容器运行所述用户代码。
本发明的另一个方面是提供一种服务器,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现上述所述的容器资源的处理方法。
本发明的另一个方面是提供一种计算机可读存储介质,存储有计算机程序,
所述计算机程序被处理器执行时实现上述所述的容器资源的处理方法。
本发明提供的容器资源的处理方法、装置及设备,通过预先建立容器资源池,在接收到对用户代码的运行指令之后,从容器资源池中为所述用户代码分配一个目标容器,将所述运行指令中的代码标识对应的用户代码和运行时文件挂载入所述目标容器,完成目标容器的配置处理,即可启动所述目标容器运行所述用户代码,无需在运行用户代码时临时创建容器资源,可以减少为创建容器带来的延迟,减少容器资源的交付使用时间,能够实现毫秒级的容器资源交付使用;并且容器资源池中的空闲容器在用户代码运行时才分配给用户代码,在分配给用户代码之前处于空闲状态,可以分配给任何用户代码使用,提高了容器资源的利用率。
附图说明
图1为本发明实施例一提供的容器资源的处理方法流程图;
图2为本发明实施例二提供的容器资源的处理方法流程图;
图3为本发明实施例三提供的容器资源的处理装置的结构示意图;
图4为本发明实施例四提供的容器资源的处理装置的结构示意图;
图5为本发明实施例五提供的服务器的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
首先对本发明所涉及的名词进行解释:
Docker:是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
本发明实施例中,容器服务平台可以包括一个中心服务器和多个宿主机。每个宿主机上预先创建了至少一个容器,容器中运行着一个轻量级的基础镜像。各个宿主机上的所有的容器构成一个预留的容器资源池。中心服务器上可以存储有容器资源池中所有容器的信息。中心服务器在各个宿主机上部署有代理(agent)服务,代理服务用于对所在宿主机上的所有容器进行配置处理。中心服务器能够通过调用代理服务完成对代理服务所在宿主机上的任一容器的配置处理。
图1为本发明实施例一提供的容器资源的处理方法流程图。本发明实施例针对预留容器资源的方式在用户提交用户代码时,就将容器资源预留给该用户运行该用户代码使用,该容器资源无法用于运行其他的用户代码,造成容器资源的浪费的问题,提供了容器资源的处理方法。本实施例中的方法应用于容器服务平台,可以是容器服务平台的中心服务器等能够用于管理容器服务平台上的所有容器的计算机设备,在其他实施例中,该方法还可应用于其他设备,本实施例以容器服务平台的中心服务器为例进行示意性说明。如图1所示,该方法具体步骤如下:
步骤S101、接收对用户代码的运行指令,运行指令至少包括用户代码的代码标识。
其中,用户代码标识可以是用于调用运行该用户代码的接口名称等,例如,用户代码标识可以是用户代码的函数名称。
通常,在用户代码被调用时,才真正需要使用容器资源运行该用户代码。在用户代码被调用之前,若为用户代码分配了容器资源并完成容器资源的配置处理,容器资源将处于被占用的空闲状态,浪费容器资源。
本实施例中,对用户代码的运行指令可以是对用户代码的调用。在调用用户代码时,需要指明调用的用户代码的代码标识和输入的运行参数。运行指令还可以包括用户代码的运行参数。
步骤S102、根据运行指令,为用户代码分配目标容器,目标容器为预先创建的容器资源池中空闲的容器资源。
在接收到对用户代码的运行指令之后,从容器资源池中选取一个已创建的空闲的容器资源作为该用户代码的目标容器,将该目标容器分配给该用户代码,无需临时创建容器资源,可以减少为该用户代码临时创建容器带来的延迟。
步骤S103、将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器。
在将目标容器分配给用户代码后,根据运行指令中的代码标识,可以获取到用户代码以及用户的代码对应的运行时文件,通过磁盘动态挂载技术,将代码标识对应的用户代码和运行时文件挂载入目标容器,完成目标容器的配置处理,这一过程消耗时间为毫秒级,不会造成用户代码明显的运行延迟。
步骤S104、启动目标容器运行用户代码。
启动目标容器中的预设进程运行挂载入目标容器中的运行时文件,以完成目标容器内用户代码的运行环境的部署,并运行用户代码。
本发明实施例通过预先建立容器资源池,在接收到对用户代码的运行指令之后,从容器资源池中为用户代码分配一个目标容器,将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器,完成目标容器的配置处理,即可启动目标容器运行用户代码,无需在运行用户代码时临时创建容器资源,可以减少为创建容器带来的延迟,减少容器资源的交付使用时间,能够实现毫秒级的容器资源交付使用;并且容器资源池中的空闲容器在用户代码运行时才分配给用户代码,在分配给用户代码之前处于空闲状态,可以分配给任何用户代码使用,提高了容器资源的利用率。
实施例二
图2为本发明实施例二提供的容器资源的处理方法流程图。在上述实施例一的基础上,本实施例中,接收对用户代码的运行指令之前,还包括:接收用户终端提交的容器资源申请信息,容器资源申请信息至少包括用户代码和用户代码对应的代码语言类型;将用户代码进行存储,并记录用户代码的代码标识、代码语言类型以及所在的文件目录。如图2所示,该方法具体步骤如下:
步骤S201、接收用户终端提交的容器资源申请信息,容器资源申请信息至少包括用户代码和用户代码对应的代码语言类型。
用户通过用户终端向容器服务平台提交容器资源申请信息,以将请求容器资源运行的用户代码提交到容器服务平台。在申请容器资源时,用户可以通过用户终端指定用户代码对应的代码语言类型。
步骤S202、将用户代码进行存储,并记录用户代码的代码标识、代码语言类型以及所在的文件目录。
其中,用户代码标识可以是用于调用运行该用户代码的接口名称等,例如,用户代码标识可以是用户代码的函数名称。
将用户代码进行存储,并记录用户代码的代码标识、代码语言类型以及所在的文件目录,包括:
根据用户代码,确定用户代码的代码标识;将用户代码存储到文件目录中;将用户代码的代码标识、用户代码对应的代码语言类型、以及用户代码所在的文件目录存储到数据库中。
可选的,可以将用户代码存储到容器服务平台的中心服务器的磁盘文件目录中;或者,还可以将用户代码存储到容器服务平台中专门用于存放用户代码的计算机设备的磁盘文件目录中;或者,还可以将用户代码存储到容器服务平台中所有容器资源所在宿主机均可访问的任一计算机设备的磁盘文件目录中,本实施例对于用户代码的具体存放的设备不做作具体限定。
步骤S203、接收对用户代码的运行指令,运行指令至少包括用户代码的代码标识。
通常,在用户代码被调用时,才真正需要使用容器资源运行该用户代码。在用户代码被调用之前,若为用户代码分配了容器资源并完成容器资源的配置处理,容器资源将处于被占用的空闲状态,浪费容器资源。
本实施例中,对用户代码的运行指令可以是对用户代码的调用。在调用用户代码时,需要指明调用的用户代码的代码标识和输入的运行参数。运行指令还可以包括用户代码的运行参数。
步骤S204、根据运行指令,为用户代码分配目标容器,目标容器为预先创建的容器资源池中空闲的容器资源。
本实施例中,在向用户提供容器资源服务之前,预先创建容器资源池,容器资源池包括多个已创建的容器资源;并在已创建的容器资源所在宿主机上部署预设的代码语言类型对应的运行时文件。
其中,预设的代码语言类型可以包括任意一种或者多种已有的编程语言。预设的代码语言类型包括的种类越多越全面,容器服务平台可以提供的容器资源的类型越丰富。预设的代码语言类型可以由技术员根据实际需要进行设定,本实施例对此不做具体限定。
可选的,容器服务平台可以维护一个用户存储容器资源池中各个容器资源的相关信息的文件,该文件可以记录各个容器资源是否已分配,是否正常使用等信息,还可以记录各个容器资源对应的服务类型、用户代码标识、用户主体信息等等。本实施例中还可以采用其他方式对容器资源池的信息进行维护,本实施例对此不做具体限定。
可选的,容器服务平台还可以动态地增加容器资源池中的容器资源,在容器资源池中的空闲容器资源小于预设阈值时,创建新的容器资源,并添加到容器资源池中。其中,预设阈值可以由技术人员根据实际需要进行设定,本实施例对此不做具体限定。
该步骤中,在接收到对用户代码的运行指令之后,从容器资源池中选取一个已创建的空闲的容器资源作为该用户代码的目标容器,将该目标容器分配给该用户代码,无需临时创建容器资源,可以减少为该用户代码临时创建容器带来的延迟。
步骤S205、将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器。
在将目标容器分配给用户代码后,根据运行指令中的代码标识,可以获取到用户代码以及用户的代码对应的运行时文件,通过磁盘动态挂载技术,将代码标识对应的用户代码和运行时文件挂载入目标容器,完成目标容器的配置处理,这一过程消耗时间为毫秒级,不会造成用户代码明显的运行延迟。
本实施例中,将运行指令中的代码标识对应的运行时文件挂载入目标容器,具体可以采用如下方式实现:
根据运行指令中用户代码的代码标识,获取用户代码的代码语言类型;根据用户代码的代码语言类型,将代码语言类型对应的运行时文件挂载入目标容器。
具体的,根据运行指令中用户代码的代码标识,获取在接收到用户终端提交的容器资源申请信息时记录的该用户代码的代码标识和代码语言类型,并根据在已创建的容器资源所在宿主机上部署预设的代码语言类型对应的运行时文件,将该用户代码对应的代码语言类型的运行时文件挂载入目标容器。
容器服务平台可以通过调用该目标容器所在宿主机上的代理服务,采用磁盘动态挂载技术将该用户代码对应的代码语言类型的运行时文件挂载入目标容器。
将运行指令中的代码标识对应的用户代码挂载入目标容器,具体可以采用如下方式实现:
根据运行指令中用户代码的代码标识,获取用户代码的所在的文件目录;根据用户代码的所在的文件目录,将用户代码挂载入目标容器。
具体的,容器服务平台可以根据代码标识,获取已存储的与该代码标识对应的用户代码以及该用户代码所在的文件目录;通过调用该目标容器所在宿主机上的代理服务,将用户代码从所在的文件目录下载到目标容器所在的宿主机的本地目录中,并采用磁盘动态挂载技术将下载到本地目录的用户代码挂载入目标容器。
本发明实施例中,可以并行地将运行指令中的代码标识对应的运行时文件和用户代码分别挂载入目标容器;或者,还可以先将运行指令中的代码标识对应的运行时文件挂载入目标容器,然后将运行指令中的代码标识对应的用户代码挂载入目标容器;或者,还可以先将运行指令中的代码标识对应的用户代码挂载入目标容器,然后将运行指令中的代码标识对应的运行时文件挂载入目标容器。本实施例中对于将运行时文件和用户代码挂载入目标容器的先后顺序不做具体限定。
步骤S206、启动目标容器运行用户代码。
启动目标容器中的预设进程,通过预设进程运行挂载入目标容器的运行时文件,并运行挂载入目标容器的用户代码。
可选的,目标容器中的预设进程可以是init进程,容器服务平台可以向目标容器中的init进程发送一个触发信号(例如,SIGUSR1信号),触发init进程启动目标容器运行挂载入目标容器的运行时文件,以使目标容器具有运行用户代码的运行环境,并运行挂载入目标容器的用户代码。
本发明实施例在接收到用户终端提交的用户代码时,并不立即为该用户代码分配容器资源,而是在接收到用户代码的运行指令之后,才从容器资源池中为用户代码分配一个目标容器,并将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器,完成目标容器的配置处理,无需在运行用户代码时临时创建容器资源,可以减少为创建容器带来的延迟,减少容器资源的交付使用时间,能够实现毫秒级的容器资源交付使用;并且容器资源池中的空闲容器在用户代码运行时才分配给用户代码,在分配给用户代码之前处于空闲状态,可以分配给任何用户代码使用,提高了容器资源的利用率。
实施例三
图3为本发明实施例三提供的容器资源的处理装置的结构示意图。本发明实施例提供的容器资源的处理装置可以执行容器资源的处理方法实施例提供的处理流程。如图3所示,该装置30包括:接收模块301,分配模块302,配置模块303和启动模块304。
具体地,接收模块301用于接收对用户代码的运行指令,运行指令至少包括用户代码的代码标识。
分配模块302用于根据运行指令,为用户代码分配目标容器,目标容器为预先创建的容器资源池中空闲的容器资源。
配置模块303用于将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器。
启动模块304用于启动目标容器运行用户代码。
本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过预先建立容器资源池,在接收到对用户代码的运行指令之后,从容器资源池中为用户代码分配一个目标容器,将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器,完成目标容器的配置处理,即可启动目标容器运行用户代码,无需在运行用户代码时临时创建容器资源,可以减少为创建容器带来的延迟,减少容器资源的交付使用时间,能够实现毫秒级的容器资源交付使用;并且容器资源池中的空闲容器在用户代码运行时才分配给用户代码,在分配给用户代码之前处于空闲状态,可以分配给任何用户代码使用,提高了容器资源的利用率。
实施例四
图4为本发明实施例四提供的容器资源的处理装置的结构示意图。在上述实施例三的基础上,本实施例中,如图4所示,该装置30还包括:预处理模块305。
具体的,预处理模块305用于:
创建容器资源池,容器资源池包括多个已创建的容器资源;在已创建的容器资源所在宿主机上部署预设的代码语言类型对应的运行时文件。
可选的,该装置30还可以包括:申请受理模块306。
申请受理模块306用于:
接收用户终端提交的容器资源申请信息,容器资源申请信息至少包括用户代码和用户代码对应的代码语言类型;将用户代码进行存储,并记录用户代码的代码标识、代码语言类型以及所在的文件目录。
可选的,申请受理模块306还用于:
根据用户代码,确定用户代码的代码标识;将用户代码存储到文件目录中;将用户代码的代码标识、用户代码对应的代码语言类型、以及用户代码所在的文件目录存储到数据库中。
可选的,配置模块303还用于:
根据运行指令中用户代码的代码标识,获取用户代码的代码语言类型;根据用户代码的代码语言类型,将代码语言类型对应的运行时文件挂载入目标容器。
可选的,配置模块303还用于:
根据运行指令中用户代码的代码标识,获取用户代码的所在的文件目录;根据用户代码的所在的文件目录,将用户代码挂载入目标容器。
可选的,启动模块304还用于:
启动目标容器中的预设进程,通过预设进程运行挂载入目标容器的运行时文件,并运行挂载入目标容器的用户代码。
本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。
本发明实施例在接收到用户终端提交的用户代码时,并不立即为该用户代码分配容器资源,而是在接收到用户代码的运行指令之后,才从容器资源池中为用户代码分配一个目标容器,并将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器,完成目标容器的配置处理,无需在运行用户代码时临时创建容器资源,可以减少为创建容器带来的延迟,减少容器资源的交付使用时间,能够实现毫秒级的容器资源交付使用;并且容器资源池中的空闲容器在用户代码运行时才分配给用户代码,在分配给用户代码之前处于空闲状态,可以分配给任何用户代码使用,提高了容器资源的利用率。
实施例五
图5为本发明实施例五提供的服务器的结构示意图。如图5所示,该服务器50包括:处理器501,存储器502,以及存储在存储器502上并可由处理器501执行的计算机程序。
处理器501在执行存储在存储器502上的计算机程序时实现上述任一方法实施例提供的容器资源的处理方法。
本发明实施例通过预先建立容器资源池,在接收到对用户代码的运行指令之后,从容器资源池中为用户代码分配一个目标容器,将运行指令中的代码标识对应的用户代码和运行时文件挂载入目标容器,完成目标容器的配置处理,即可启动目标容器运行用户代码,无需在运行用户代码时临时创建容器资源,可以减少为创建容器带来的延迟,减少容器资源的交付使用时间,能够实现毫秒级的容器资源交付使用;并且容器资源池中的空闲容器在用户代码运行时才分配给用户代码,在分配给用户代码之前处于空闲状态,可以分配给任何用户代码使用,提高了容器资源的利用率。
另外,本发明实施例还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例提供的容器资源的处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
Claims (16)
1.一种容器资源的处理方法,其特征在于,包括:
接收对用户代码的运行指令,所述运行指令至少包括所述用户代码的代码标识;
根据所述运行指令,为所述用户代码分配目标容器,所述目标容器为预先创建的容器资源池中空闲的容器资源;
将所述运行指令中的代码标识对应的用户代码和运行时文件挂载入所述目标容器;
启动所述目标容器运行所述用户代码。
2.根据权利要求1所述的方法,其特征在于,所述接收对用户代码的运行指令之前,还包括:
创建容器资源池,所述容器资源池包括多个已创建的容器资源;
在所述已创建的容器资源所在宿主机上部署预设的代码语言类型对应的运行时文件。
3.根据权利要求1所述的方法,其特征在于,所述接收对用户代码的运行指令之前,还包括:
接收用户终端提交的容器资源申请信息,所述容器资源申请信息至少包括所述用户代码和所述用户代码对应的代码语言类型;
将所述用户代码进行存储,并记录所述用户代码的代码标识、代码语言类型以及所在的文件目录。
4.根据权利要求3所述的方法,其特征在于,所述将所述用户代码进行存储,并记录所述用户代码的代码标识、代码语言类型以及所在的文件目录,包括:
根据所述用户代码,确定所述用户代码的代码标识;
将所述用户代码存储到文件目录中;
将所述用户代码的代码标识、所述用户代码对应的代码语言类型、以及所述用户代码所在的文件目录存储到数据库中。
5.根据权利要求3或4所述的方法,其特征在于,所述将所述运行指令中的代码标识对应的运行时文件挂载入所述目标容器,包括:
根据所述运行指令中所述用户代码的代码标识,获取所述用户代码的代码语言类型;
根据所述用户代码的代码语言类型,将所述代码语言类型对应的运行时文件挂载入所述目标容器。
6.根据权利要求3或4所述的方法,其特征在于,所述将所述运行指令中的代码标识对应的用户代码挂载入所述目标容器,包括:
根据所述运行指令中所述用户代码的代码标识,获取所述用户代码的所在的文件目录;
根据所述用户代码的所在的文件目录,将所述用户代码挂载入所述目标容器。
7.根据权利要求1所述的方法,其特征在于,所述启动所述目标容器运行所述用户代码,包括:
启动所述目标容器中的预设进程,通过所述预设进程运行挂载入所述目标容器的所述运行时文件,并运行挂载入所述目标容器的所述用户代码。
8.一种容器资源的处理装置,其特征在于,包括:
接收模块,用于接收对用户代码的运行指令,所述运行指令至少包括所述用户代码的代码标识;
分配模块,用于根据所述运行指令,为所述用户代码分配目标容器,所述目标容器为预先创建的容器资源池中空闲的容器资源;
配置模块,用于将所述运行指令中的代码标识对应的用户代码和运行时文件挂载入所述目标容器;
启动模块,用于启动所述目标容器运行所述用户代码。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:预处理模块,
所述预处理模块用于:
创建容器资源池,所述容器资源池包括多个已创建的容器资源;
在所述已创建的容器资源所在宿主机上部署预设的代码语言类型对应的运行时文件。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:申请受理模块,
所述申请受理模块用于:
接收用户终端提交的容器资源申请信息,所述容器资源申请信息至少包括所述用户代码和所述用户代码对应的代码语言类型;
将所述用户代码进行存储,并记录所述用户代码的代码标识、代码语言类型以及所在的文件目录。
11.根据权利要求10所述的装置,其特征在于,所述申请受理模块还用于:
根据所述用户代码,确定所述用户代码的代码标识;
将所述用户代码存储到文件目录中;
将所述用户代码的代码标识、所述用户代码对应的代码语言类型、以及所述用户代码所在的文件目录存储到数据库中。
12.根据权利要求10或11所述的装置,其特征在于,所述配置模块还用于:
根据所述运行指令中所述用户代码的代码标识,获取所述用户代码的代码语言类型;
根据所述用户代码的代码语言类型,将所述代码语言类型对应的运行时文件挂载入所述目标容器。
13.根据权利要求10或11所述的装置,其特征在于,所述配置模块还用于:
根据所述运行指令中所述用户代码的代码标识,获取所述用户代码的所在的文件目录;
根据所述用户代码的所在的文件目录,将所述用户代码挂载入所述目标容器。
14.根据权利要求8所述的装置,其特征在于,所述启动模块还用于:
启动所述目标容器中的预设进程,通过所述预设进程运行挂载入所述目标容器的所述运行时文件,并运行挂载入所述目标容器的所述用户代码。
15.一种服务器,其特征在于,包括:
存储器,处理器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序,
所述处理器运行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,存储有计算机程序,
所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810632097.6A CN108958930A (zh) | 2018-06-19 | 2018-06-19 | 容器资源的处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810632097.6A CN108958930A (zh) | 2018-06-19 | 2018-06-19 | 容器资源的处理方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108958930A true CN108958930A (zh) | 2018-12-07 |
Family
ID=64491190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810632097.6A Pending CN108958930A (zh) | 2018-06-19 | 2018-06-19 | 容器资源的处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108958930A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817691A (zh) * | 2021-01-27 | 2021-05-18 | 北京迈格威科技有限公司 | 资源分配方法、装置、设备及介质 |
CN113312168A (zh) * | 2020-02-26 | 2021-08-27 | 华为技术有限公司 | 页面访问方法与电子设备 |
CN114090183A (zh) * | 2021-11-25 | 2022-02-25 | 北京字节跳动网络技术有限公司 | 一种应用启动方法、装置、计算机设备和存储介质 |
US20220249945A1 (en) * | 2020-07-27 | 2022-08-11 | Tencent Technology (Shenzhen) Company Limited | Picture update method and apparatus, computer device, and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105867955A (zh) * | 2015-09-18 | 2016-08-17 | 乐视云计算有限公司 | 一种应用程序部署系统及部署方法 |
CN106445473A (zh) * | 2015-08-06 | 2017-02-22 | 华为技术有限公司 | 一种容器部署方法及装置 |
CN107003862A (zh) * | 2014-09-30 | 2017-08-01 | 亚马逊技术有限公司 | 动态代码部署和版本化 |
CN107111508A (zh) * | 2014-09-30 | 2017-08-29 | 亚马逊技术有限公司 | 用于执行程序代码的请求的程序性事件检测和消息生成 |
CN107566541A (zh) * | 2017-08-03 | 2018-01-09 | 携程旅游信息技术(上海)有限公司 | 容器网络资源分配方法、系统、存储介质和电子设备 |
CN107704310A (zh) * | 2017-09-27 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种实现容器集群管理的方法、装置和设备 |
-
2018
- 2018-06-19 CN CN201810632097.6A patent/CN108958930A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107003862A (zh) * | 2014-09-30 | 2017-08-01 | 亚马逊技术有限公司 | 动态代码部署和版本化 |
CN107111508A (zh) * | 2014-09-30 | 2017-08-29 | 亚马逊技术有限公司 | 用于执行程序代码的请求的程序性事件检测和消息生成 |
CN106445473A (zh) * | 2015-08-06 | 2017-02-22 | 华为技术有限公司 | 一种容器部署方法及装置 |
CN105867955A (zh) * | 2015-09-18 | 2016-08-17 | 乐视云计算有限公司 | 一种应用程序部署系统及部署方法 |
CN107566541A (zh) * | 2017-08-03 | 2018-01-09 | 携程旅游信息技术(上海)有限公司 | 容器网络资源分配方法、系统、存储介质和电子设备 |
CN107704310A (zh) * | 2017-09-27 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种实现容器集群管理的方法、装置和设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312168A (zh) * | 2020-02-26 | 2021-08-27 | 华为技术有限公司 | 页面访问方法与电子设备 |
US20220249945A1 (en) * | 2020-07-27 | 2022-08-11 | Tencent Technology (Shenzhen) Company Limited | Picture update method and apparatus, computer device, and storage medium |
CN112817691A (zh) * | 2021-01-27 | 2021-05-18 | 北京迈格威科技有限公司 | 资源分配方法、装置、设备及介质 |
CN112817691B (zh) * | 2021-01-27 | 2024-02-02 | 北京迈格威科技有限公司 | 资源分配方法、装置、设备及介质 |
CN114090183A (zh) * | 2021-11-25 | 2022-02-25 | 北京字节跳动网络技术有限公司 | 一种应用启动方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958930A (zh) | 容器资源的处理方法、装置及设备 | |
WO2020177564A1 (zh) | Vnf的生命周期管理方法及装置 | |
US8930957B2 (en) | System, method and program product for cost-aware selection of stored virtual machine images for subsequent use | |
CN103530186B (zh) | 实现相机应用支持多位置存储的方法及系统 | |
CN105144109B (zh) | 分布式数据中心技术 | |
CN107301022A (zh) | 一种基于容器技术的存储访问方法及系统 | |
US9098378B2 (en) | Computing reusable image components to minimize network bandwidth usage | |
US10146665B2 (en) | Systems and methods for providing dynamic and real time simulations of matching resources to requests | |
CN110515628A (zh) | 应用部署方法及装置 | |
CN105511975B (zh) | 一种异常处理方法和装置 | |
CN108881228A (zh) | 云端注册激活方法、装置、设备和存储介质 | |
GB2582223A (en) | Determining an optimal computing environment for running an image | |
EP4404538A1 (en) | Request processing method and device, computer equipment, and storage device | |
CN108429787A (zh) | 容器部署方法及装置、计算机存储介质、终端 | |
CN110247857B (zh) | 限流方法及装置 | |
CN108170511A (zh) | 一种docker镜像获取方法、装置、设备及存储介质 | |
KR101644958B1 (ko) | 다중 사용자 맞춤형 컴퓨팅 자원 제공을 위한 클러스터 구축 방법 및 클러스터 구축 장치 | |
CN113961301A (zh) | 虚拟网卡绑定、解绑的方法及装置、计算节点及存储介质 | |
CN109347716A (zh) | 消费者vnf的实例化方法及装置 | |
CN106339235B (zh) | 一种界面展示方法和装置 | |
US20200097344A1 (en) | Enqueue-related processing based on timing out of an attempted enqueue | |
CN106708583A (zh) | 应用加载方法和装置 | |
WO2016206519A1 (zh) | 分配ip地址的方法及装置 | |
US20150007046A1 (en) | Management of an application for an electronic device | |
CN114721743B (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 |