镜像容器创建方法及装置、计算机装置及存储介质与流程

文档序号:21504972发布日期:2020-07-14 18:09阅读:182来源:国知局
镜像容器创建方法及装置、计算机装置及存储介质与流程

本发明涉及持续集成技术领域,具体涉及一种镜像容器创建方法及装置、计算机装置和计算机可读存储介质。



背景技术:

jenkins可以新建多个任务。任务是对持续集成过程中各种任务的统称,可以是测试任务、集成任务、交付任务、部署任务等等。

通常,每一个任务需要在多个运行环境类型不同的多个节点上执行。如何在一个节点机器上创建多个运行环境类型的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是本发明实施例提供的镜像容器创建方法较佳实施例的流程图。

图2是本发明实施例提供的镜像容器创建装置较佳实施例的流程图。

图3是本发明实施例提供的计算机装置较佳实施例的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

优选地,本发明的镜像容器创建方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述计算机装置可以是组成cdn(contentdeliverynetwork,内容分发网络)网络或者区块链网络的节点。

下文为了便于理解,对部分技术术语进行相应解释:

docker是paas提供商dotcloud开源的一个基于lxc的高级容器引擎,源代码托管在github上,使用go作为开发语言并遵从apache2.0协议开源。docker使用客户端/服务器(c/s)架构模式,使用openapi来管理容器整个生命周期。

docker镜像(image)是构建容器的基础,是一个只读的模板,镜像是一种分层结构的文件系统。一个只读层被称为镜像,一个镜像是永久不会变的。由于docker使用一个统一文件系统,docker进程认为整个文件系统是以读写方式挂载的。但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。由于镜像不可写,所以镜像是无状态的。

docker容器基于docker镜像创建生成。容器可以理解为镜像的一个实例。让用户可以打包应用及程序依赖包到一个可移植的容器内,然后部署到支持docker的linux机器上(常见linux发布版本基本都支持docker)。同时,实现了进程级别的虚拟化。

docker仓库:docker仓库是集中存放docker镜像的地方,是一个http服务。

jenkins:一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

实施例一

图1是本发明实施例提供的镜像容器创建方法的流程图。所述镜像容器创建方法应用于分布式系统中的服务节点,所述镜像容器创建方法用于在一个节点机器上创建多个运行环境类型的docker镜像容器。

参阅图1所示,所述镜像容器创建方法具体包括以下步骤:

101,获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型。

在本实施例中,所述服务节点中的jenkins可获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型。

所述多个待执行任务可以包括持续集成过程中任意一个环节的任务,例如,可以包括集成、测试、交付等环节的任务。所述多个待执行任务可以包括测试任务、集成任务、交付任务、部署任务等等。

所述目标任务是所述多个待执行任务中的任意一个任务,可以由用户的输入指令确定,或通过自动化脚本确定。

所述多个节点可以是所述分布式系统中的计算节点(物理主机)、云服务器等。例如,可以将所述分布式系统中负载低的节点确定为所述目标任务在所述分布式系统中的所述多个节点。所述目标任务在所述分布式系统中的所述多个节点也可以为预设节点,或者是用户指定的节点。

运行环境类型可以包括centostm、ubuntutm、redhattm、windowtm7、windowtm10等。

102,连接所述多个节点中的第一从节点。

所述多个节点包括主节点和多个从节点,所述连接所述多个节点中的第一从节点包括:

连接所述主节点;

若连接所述主节点失败,连接所述多个从节点中的第一从节点。

具体地,每个目标任务可以对应一个主节点和至少一个从节点,从节点是主节点的备用节点。当服务节点连接主节点失败时,服务节点可以连接从节点。

在一具体实施例中,可以通过jnlp(javanetworklaunchingprotocol,此协议是javatm提供的一种可以通过浏览器直接执行javatm应用程序的途径,使可以直接通过一个网页上的url连接打开一个javatm应用程序)启动所述主节点的连接服务,通过所述主节点的连接服务连接所述主节点。所述主节点可以通过预设url连接所述服务节点。若超过预设时间未接收到所述主节点的连接确认信息,和/或超过预设连接次数未接收到所述主节点的连接确认信息,连接所述主节点失败。

103,判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器。

在一个实施例中,所述判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器可以包括:

查询所述第一从节点中的每个docker容器的运行环境类型;

若查询到的运行环境类型包括所述目标运行环境类型,确定所述第一从节点中存在运行环境类型与所述目标运行环境类型一致的docker容器;

若查询到的运行环境类型不包括所述目标运行环境类型,确定所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器。

具体地,可以通过调用docker查询指令查询所述第一从节点中的docker容器的数量和每个docker容器的运行环境类型。

在另一实施例中,若连接所述多个节点失败,提示因所述多个节点连接失败导致执行所述目标任务失败。

docker容器类似虚拟机,可以支持的操作包括启动,停止,删除等(即所述服务节点可以对docker容器进行的操作)。docker容器中会运行指定应用程序,包含指定应用程序的代码及指定应用程序所需的依赖文件。docker容器能够使用沙箱机制,相互之间不会有任何接口,因此可以使得jenkins系统中的构建任务可以运行在独立的docker容器中,互不干扰。

104,若所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器,通过运行于所述服务节点的代理服务向所述第一从节点发送对所述目标运行环境类型的docker镜像的拉取指令,使所述第一从节点从docker仓库拉取所述目标运行环境类型的docker镜像,根据所述第一从节点的目标运行环境类型的docker镜像创建所述第一从节点的目标运行环境类型的docker容器。

所述主节点和所述多个节点中配置了docker仓库的预设网址。即所述第一从节点可以根据所述目标运行环境类型从预设网址拉取所述目标运行环境类型的docker镜像。

一个docker镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了mysql或用户需要的指定应用程序。

实施例一可以在一个节点机器上创建多个运行环境类型的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容器分别执行各个待执行任务可以使所述多个待执行任务在所述分布式系统中被并行执行,以提升镜像容器创建效率。可以根据各个任务的标识码区分各个任务。

实施例二

图2为本发明实施例提供的镜像容器创建装置较佳实施例的结构图。所述镜像容器创建装置10应用于分布式系统中的服务节点,用于在一个节点机器上创建多个运行环境类型的docker镜像容器。

如图2所示,所述镜像容器创建装置10可以包括:获取单元201、连接单元202、判断单元203、发送单元204。

获取单元201,用于获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型。

在本实施例中,所述服务节点中的jenkins可获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型。

所述多个待执行任务可以包括持续集成过程中任意一个环节的任务,例如,可以包括集成、测试、交付等环节的任务。所述多个待执行任务可以包括测试任务、集成任务、交付任务、部署任务等等。

所述目标任务是所述多个待执行任务中的任意一个任务,可以由用户的输入指令确定,或通过自动化脚本确定。

所述多个节点可以是所述分布式系统中的计算节点(物理主机)、云服务器等。例如,可以将所述分布式系统中负载低的节点确定为所述目标任务在所述分布式系统中的所述多个节点。所述目标任务在所述分布式系统中的所述多个节点也可以为预设节点,或者是用户指定的节点。

运行环境类型可以包括centostm、ubuntutm、redhattm、windowtm7、windowtm10等。

连接单元202,用于连接所述多个节点中的第一从节点。

所述多个节点包括主节点和多个从节点,所述连接所述多个节点中的第一从节点包括:

连接所述主节点;

若连接所述主节点失败,连接所述多个从节点中的第一从节点。

具体地,每个目标任务可以对应一个主节点和至少一个从节点,从节点是主节点的备用节点。当服务节点连接主节点失败时,服务节点可以连接从节点。

在一具体实施例中,可以通过jnlp(javanetworklaunchingprotocol,此协议是javatm提供的一种可以通过浏览器直接执行javatm应用程序的途径,使可以直接通过一个网页上的url连接打开一个javatm应用程序)启动所述主节点的连接服务,通过所述主节点的连接服务连接所述主节点。所述主节点可以通过预设url连接所述服务节点。若超过预设时间未接收到所述主节点的连接确认信息,和/或超过预设连接次数未接收到所述主节点的连接确认信息,连接所述主节点失败。

判断单元203,用于判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器。

在一个实施例中,所述判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器可以包括:

查询所述第一从节点中的每个docker容器的运行环境类型;

若查询到的运行环境类型包括所述目标运行环境类型,确定所述第一从节点中存在运行环境类型与所述目标运行环境类型一致的docker容器;

若查询到的运行环境类型不包括所述目标运行环境类型,确定所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器。

具体地,可以通过调用docker查询指令查询所述第一从节点中的docker容器的数量和每个docker容器的运行环境类型。

在另一实施例中,若连接所述多个节点失败,提示因所述多个节点连接失败导致执行所述目标任务失败。

docker容器类似虚拟机,可以支持的操作包括启动,停止,删除等(即所述服务节点可以对docker容器进行的操作)。docker容器中会运行指定应用程序,包含指定应用程序的代码及指定应用程序所需的依赖文件。docker容器能够使用沙箱机制,相互之间不会有任何接口,因此可以使得jenkins系统中的构建任务可以运行在独立的docker容器中,互不干扰。

发送单元204,用于若所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器,通过运行于所述服务节点的代理服务向所述第一从节点发送对所述目标运行环境类型的docker镜像的拉取指令,使所述第一从节点从docker仓库拉取所述目标运行环境类型的docker镜像,根据所述第一从节点的目标运行环境类型的docker镜像创建所述第一从节点的目标运行环境类型的docker容器。

所述主节点和所述多个节点中配置了docker仓库的预设网址。即所述第一从节点可以根据所述目标运行环境类型从预设网址拉取所述目标运行环境类型的docker镜像。

一个docker镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了mysql或用户需要的指定应用程序。

实施例二的镜像容器创建装置10可以在一个节点机器上创建多个运行环境类型的docker镜像容器。

在另一实施例中,镜像容器创建装置10还包括执行单元,用于在所述根据所述第一从节点的目标运行环境类型的docker镜像创建所述第一从节点的目标运行环境类型的docker容器之后,通过所述代理服务使所述第一从节点的目标运行环境类型的docker容器执行所述目标任务。

在一具体实施例中,所述通过所述代理服务使所述第一从节点的目标运行环境类型的docker容器执行所述目标任务包括:

通过所述代理服务向所述第一从节点发送启动所述第一从节点的目标运行环境类型的docker容器的命令;

通过所述代理服务向所述第一从节点发送在所述第一从节点的目标运行环境类型的docker容器中执行所述目标任务的命令。

所述第一从节点的目标运行环境类型的docker容器被启动后,可以根据在所述第一从节点的目标运行环境类型的docker容器中执行所述目标任务的命令执行所述目标任务。

通过所述多个节点减少节点关机或连接故障对镜像容器创建的影响,提升任务在docker容器执行的稳定性。所述主节点或所述第一从节点的多个docker容器可以模拟多个不同运行环境类型的节点,减少所需节点的数量。

所述执行单元还用于若连接所述主节点成功;判断所述主节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器;若所述主节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器,通过所述代理服务向所述主节点发送对目标运行环境类型的docker镜像的拉取指令,使所述主节点从docker仓库拉取所述目标运行环境类型的docker镜像,根据所述主节点的目标运行环境类型的docker镜像创建所述主节点的目标运行环境类型的docker容器;通过所述代理服务使所述主节点的目标运行环境类型的docker容器执行所述目标任务。

在另一实施例中,所述连接单元还用于若连接所述第一从节点失败,连接所述多个节点中的第二从节点。

当与所述多个节点中的部分节点连接失败后,可以连接所述多个节点中的剩余节点,以在所述多个节点中找到可连接的节点,降低连接失败的风险。

在另一实施例中,所述镜像容器创建装置10还可以包括停止单元,用于在所述第一从节点的目标运行环境类型的docker容器执行所述目标任务之后接收对所述目标任务的删除请求;根据所述删除请求停止运行所述第一从节点的目标运行环境类型的docker容器。

具体地,当所述目标镜像容器创建完成后,可以接收对所述目标任务的删除请求;向所述第一从节点发送停止运行所述第一从节点的目标运行环境类型的docker容器的指令;向所述第一从节点发送删除所述第一从节点的目标运行环境类型的docker容器的指令。防止所述第一从节点的目标运行环境类型的docker容器持续运行。

在另一实施例中,所述执行单元还用于获取所述多个待执行任务和所述多个待执行任务在所述分布式系统中的docker容器;通过所述代理服务使各个待执行任务的docker容器分别执行各个待执行任务。

通过所述代理服务使各个待执行任务的docker容器分别执行各个待执行任务可以使所述多个待执行任务在所述分布式系统中被并行执行,以提升镜像容器创建效率。可以根据各个任务的标识码区分各个任务。

实施例三

本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述镜像容器创建方法实施例中的步骤,例如图1所示的101-104:

101,获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型;

102,连接所述多个节点中的第一从节点;

103,判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器;

104,若所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器,通过运行于所述服务节点的代理服务向所述第一从节点发送对所述目标运行环境类型的docker镜像的拉取指令,使所述第一从节点从docker仓库拉取所述目标运行环境类型的docker镜像,根据所述第一从节点的目标运行环境类型的docker镜像创建所述第一从节点的目标运行环境类型的docker容器。

或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-204:

获取单元201,用于获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型;

连接单元202,用于连接所述多个节点中的第一从节点;

判断单元203,用于判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器;

发送单元204,用于若所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器,通过运行于服务节点的代理服务向所述第一从节点发送对所述目标运行环境类型的docker镜像的拉取指令,使所述第一从节点从docker仓库拉取所述目标运行环境类型的docker镜像,根据所述第一从节点的目标运行环境类型的docker镜像创建所述第一从节点的目标运行环境类型的docker容器。

实施例四

图3为本发明实施例提供的计算机装置的示意图。所述计算机装置1包括存储器20、处理器30、总线50以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40。所述处理器30执行所述计算机程序40时实现上述镜像容器创建方法实施例中的步骤,例如图1所示的101-104:

101,获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型;

102,连接所述多个节点中的第一从节点;

103,判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器;

104,若所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器,通过运行于所述服务节点的代理服务向所述第一从节点发送对所述目标运行环境类型的docker镜像的拉取指令,使所述第一从节点从docker仓库拉取所述目标运行环境类型的docker镜像,根据所述第一从节点的目标运行环境类型的docker镜像创建所述第一从节点的目标运行环境类型的docker容器。

或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图2中的单元201-204:

获取单元201,用于获取多个待执行任务中的目标任务和所述目标任务在所述分布式系统中的多个节点、目标运行环境类型;

连接单元202,用于连接所述多个节点中的第一从节点;

判断单元203,用于判断所述第一从节点中是否存在运行环境类型与所述目标运行环境类型一致的docker容器;

发送单元204,用于若所述第一从节点中不存在运行环境类型与所述目标运行环境类型一致的docker容器,通过运行于服务节点的代理服务向所述第一从节点发送对所述目标运行环境类型的docker镜像的拉取指令,使所述第一从节点从docker仓库拉取所述目标运行环境类型的docker镜像,根据所述第一从节点的目标运行环境类型的docker镜像创建所述第一从节点的目标运行环境类型的docker容器。

示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图2中的获取单元201、连接单元202、判断单元203、发送单元204,各单元具体功能参见实施例二。

所述计算机装置1可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备等终端设备。在本实施例,所述计算机装置1可以是边缘服务器。

所称处理器30可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。

所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据)等。此外,存储器20可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。

所述总线50以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。所述总线50可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,计算机装置1还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该计算机装置1与其他电子设备之间建立通信连接。

可选地,该计算机装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机装置1中处理的信息以及用于显示可视化的用户界面。

本领域技术人员可以理解,所述示意图3仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机装置上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机装置可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1