CN110262829A - 私有镜像生成方法、装置、计算机设备及存储介质 - Google Patents
私有镜像生成方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110262829A CN110262829A CN201910410614.XA CN201910410614A CN110262829A CN 110262829 A CN110262829 A CN 110262829A CN 201910410614 A CN201910410614 A CN 201910410614A CN 110262829 A CN110262829 A CN 110262829A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- privately owned
- container
- application
- owned mirror
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种私有镜像生成方法、装置、计算机设备及存储介质,其涉及云计算技术领域,可应用于PaaS平台中。所述方法包括:若接收到私有镜像生成指令,调用生成接口,以通过生成接口将产生私有镜像生成指令的容器封装成私有镜像;获取封装后的私有镜像的大小;判断私有镜像的大小是否超过预设大小;若未超过预设大小,根据容器确定保存私有镜像的目的镜像仓库;调用推送接口,将私有镜像推送至目的镜像仓库;并更新数据库。本申请实施例生成私有镜像自动化完成,无需用户干预,提高了私有镜像生成的速度和效率,同时保存的私有镜像可在下次需要使用时,直接使用私有镜像来生成应用,便于快速部署,无需再重新安装组件和服务等。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种私有镜像生成方法、装置、计算机设备及存储介质。
背景技术
在云平台中,如在PaaS(Platform-as-a-Service,平台即服务)平台中,利用官方镜像来创建容器应用的容器实例时,由于使用官方镜像,一旦容器实例创建成功,就需要收费。当不再使用该容器应用时,为了节约成本考虑,往往需要把该容器应用进行删除。而当下次再次需要使用该容器应用时,又需要重新创建,除了需要重新创建容器应用外,用户自行在容器实例上进行的一些操作,比如安装新的服务以及组件等,都会重新进行安装,如此会导致不能充分利用之前创建的容器应用,再次创建的过程也会占用大量的人工成本和时间成本。因此,当官方镜像不满足需求时,可考虑使用私有镜像。
发明内容
本申请实施例提供一种私有镜像生成方法、装置、计算机设备及存储介质,可自动生成私有镜像,提高私有镜像生成的速度和效率,同时可直接使用私有镜像来生成应用,便于快速部署。
第一方面,本申请实施例提供了一种私有镜像生成方法,包括:
若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像;获取封装后的私有镜像的大小;判断所述私有镜像的大小是否超过预设大小;若所述私有镜像的大小未超过预设大小,根据所述容器确定保存所述私有镜像的目的镜像仓库;调用推送接口,将所述私有镜像推送至所述目的镜像仓库;在数据库中添加所述私有镜像的信息。
第二方面,本发明实施例提供了一种私有镜像生成装置,该私有镜像生成装置包括用于执行上述第一方面所述的方法对应的单元。
第三方面,本发明实施例提供了一种计算机设备,所述计算机设备包括存储器,以及与所述存储器相连的处理器;
所述存储器用于存储计算机程序,所述处理器用于运行所述存储器中存储的计算机程序,以执行上述第一方面所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面所述的方法。
本申请实施例除了私有镜像生成指令会涉及用户触发外,其他都是自动化完成,无需用户干预,提高了私有镜像生成的速度和效率,同时保存的私有镜像可在下次需要使用时,直接使用私有镜像来生成应用,便于快速部署,无需再重新安装组件和服务等。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的私有镜像生成方法的流程示意图;
图2是本申请另一实施例提供的私有镜像生成方法的流程示意图;
图3是本申请另一实施例提供的私有镜像生成方法的流程示意图;
图4是本申请实施例提供的私有镜像生成方法的子流程示意图;
图5是本申请实施例提供的私有镜像生成装置的示意性框图;
图6是本申请另一实施例提供的私有镜像生成装置的示意性框图;
图7是本申请另一实施例提供的私有镜像生成装置的示意性框图;
图8是本申请实施例提供的创建单元的示意性框图;
图9是本申请实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要注意的是,下文描述中,容器应用的容器实例和容器应用的容器意义相同。
图1是本申请实施例提供的私有镜像生成方法的流程示意图。如图1所示,该方法包括S101-S107。
S101,若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像。
其中,私有镜像生成指令触发的方式包括多种,如用户触摸或者点击相关按钮或者图像触发;也可以接收用户的语音生成私有镜像信息来触发等。在本实施例中,私有镜像生成指令触发的方式不做限制。
若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像,即步骤S101,包括:若接收到私有镜像生成指令,获取产生所述私有镜像生成指令的容器的容器标识,可以理解为,所述私有镜像生成指令中包括有容器标识;根据容器标识通过命令来调用生成接口,将所对应的容器封装成私有镜像,并保存至所述容器所属的宿主机上。可以理解为,若接收到私有镜像生成指令,调用生成接口,通过该生成接口将产生所述私有镜像生成指令的容器打包成私有镜像。其中,生成接口可以以函数的形式存在,如commit函数,容器标识可以为容器ID等,以用来识别具体的容器,私有镜像包括私有镜像名称等。根据私有镜像生成指令调用生成接口的命令为:docker commit{容器ID}{私有镜像名称},其中,容器ID即为产生所述私有镜像生成指令的容器的容器标识,私有镜像名称为将容器ID所对应的容器封装成私有镜像的私有镜像名称。将所对应的容器封装成私有镜像,可以理解为将整个的容器封装成私有镜像,包括容器的各种基础环境、容器里的各种文件、在容器里面所进行的一些操作比如安装有新的组件等都全部进行保存和封装。或者也可以理解为相当于虚拟机的映射,可保留容器中的所有的一切。需要注意的是,封装的过程还包括打包的过程。
S102,获取封装后的私有镜像的大小。
如可以通过执行命令来获取封装后的私有镜像的大小,如私有镜像有多少G。如命令:docker inspect命令,该命令用于获取容器/镜像的元数据。具体地,如dockerinspect-f‘{’‘{.size}’‘}’{私有镜像名称}。其中,-f表示指定返回值的模板文件,私有镜像名称即为封装后的私有镜像名称。
S103,判断所述私有镜像的大小是否超过预设大小。
其中,预设大小可以为10G,预设大小也可以是其他的大小。可以理解地,生成的私有镜像会占用存储空间,因此,如果私有镜像太大,那么会占用太多的资源。因此,会限制所保存的私有镜像的大小等。
若所述私有镜像的大小未超过预设大小,执行步骤S104;若所述私有镜像的大小超过预设大小,执行步骤S107。
S104,根据所述容器所在的应用环境和区域确定保存所述私有镜像的目的镜像仓库。
其中,该容器包括容器的信息,如容器所在的应用环境、容器所在的区域等。根据所述容器确定保存所述私有镜像的目的镜像仓库,包括:根据所述容器所在的应用环境、容器所在的区域确定保存所述私有镜像的目的镜像仓库。
在一实施例中,步骤S104包括:获取所述容器所在的应用环境和区域;获取所述应用环境和区域下预先设置的用于保存私有镜像的镜像仓库,将该镜像仓库确定为目的镜像仓库。
在数据库中保存有容器的信息,如容器所在的宿主机、容器所在的应用环境以及区域等信息。其中,容器所在的应用环境包括生产环境、测试环境、开发环境等。其中,生产环境意味着该容器所对应的应用或者服务对接外部环境,或者供外部用户进行访问;测试环境意味着该容器所对应的应用或者服务供测试使用;开发环境意味着该容器所对应的应用或者服务供开发使用。容器所在的应用环境、容器所在的区域共同确定该容器所对应的应用或者服务的位置。可以理解为容器所对应的应用或者服务在某个应用环境下容器应用的区域所对应的机房中。其中,容器所在的区域由两部分组成:“区域”+“安全区域”。其中,“安全区域”是“区域”下的一个子区域,如A区域下的A1区域,A区域下的A2区域,是两个不同的区域。可以理解地,同一个区域不同应用环境所对应的机房位置不同,同一应用环境不同区域所对应的机房位置不同。
一个应用环境和一个区域确定一个机房位置,一个机房位置确定一个镜像仓库,也即一个应用环境和一个区域确定一个镜像仓库。在一个应用环境下的一个区域中,预先设置有对应的保存私有镜像的镜像仓库,将该镜像仓库作为目的进线仓库。如此,以方便从目的镜像仓库中获取所需要镜像信息,而不需要跨区域从其他的镜像仓库中获取镜像信息,提高了获取镜像信息的效率。目的镜像仓库包括目的镜像仓库对应的IP地址/目的镜像仓库名等信息。
S105,调用推送接口,将所述私有镜像推送至所述目的镜像仓库。
其中,推送接口可以以函数的形式存在。调用推送接口,将私有镜像推送至目的镜像仓库,包括:登陆至目的镜像仓库;调用推送接口,以将私有镜像推送至目的镜像仓库。其中,登陆可执行命令来登陆,如使用使用docker login命令登陆;将私有镜像推送至目的镜像仓库,也可通过执行命令的方式来实现,如docker push{私有镜像名称}。如此,以将封装在宿主机上的私有镜像推送至目的镜像仓库。
S106,在数据库中添加所述私有镜像的信息。
将该私有镜像信息添加到数据库中,以进行保存。私有镜像的信息包括私有镜像名称、私有镜像生成时间、生成私有镜像的容器信息等。
S107,若所述私有镜像的大小超过预设大小,移除所述私有镜像。
移除私有镜像,也可以使用移除命令来实现,如使用docker rmi命令来移除封装后的私有镜像,具体地,如docker rmi-f{私有镜像名称}。移除所述私有镜像并同时进行提示,以提示以告知用户该私有镜像大小超过了预设大小,且已进行了移除。
上述方法实施例中,除了私有镜像生成指令会涉及由用户触发外,其他都是自动化完成,无需用户干预,提高了私有镜像生成的速度和效率,同时保存的私有镜像可在下次需要使用时,直接使用私有镜像来生成应用,便于快速部署,无需再重新安装组件等,降低了重新安装容器应用以及组件或者服务的时间成本和人工成本,提高了用户的体验。
在一实施例中,在私有镜像生成后,可对所生成的私有镜像进行编辑,以修改该私有镜像的信息。如此,如图2所示,所述私有镜像生成方法包括步骤S201-S210。其中,该实施例与图1所示的实施例的区别在于:增加了步骤S208-S210。下面将详细介绍S208-S210,其他步骤S201-S207与步骤S101-S107步骤一致,具体请参看图1实施例的描述。
S208,若接收到编辑指令,获取所述编辑指令中的待编辑的私有镜像。
其中,编辑指令有多种方式触发,如由用户触摸或者点击相关按钮或者图像触发,如在私有镜像的列表中,点击某一个私有镜像所对应的编辑按钮,触发该私有镜像的编辑指令;也可以接收用户的语音编辑信息来触发等。该编辑指令中的待编辑的私有镜像中包括私有镜像的名称等标识信息。
S209,根据所述编辑指令调用编辑接口,以接收通过所述编辑接口设置的所述待编辑的私有镜像的修改信息。
编辑接口是由开发人员开发的,可以以编辑界面的形式存在,通过编辑接口修改私有镜像的信息。如私有镜像的名称、私有镜像的描述、私有镜像的镜像组等。其中,私有镜像的描述,包括如该私有镜像具体的作用是什么,包括哪些内容等,以方便快速了解该私有镜像。私有镜像的镜像组,可以理解为,为了便于管理,将私有镜像分成不同的组,每个组中包括有一个或者多个私有镜像。
S210,若接收到编辑完成指令,接收所述待编辑的私有镜像的修改信息,并将所述修改信息更新至数据库。
该实施例中实现了对私有镜像的信息的修改。由于上述私有镜像的生成过程自动完成,因此,提供编辑接口,以让用户方便对私有镜像的信息进行修改,提高了用户的体验。
在一实施例中,可使用保存到目的镜像仓库中的私有镜像来创建容器应用。如此,如图3所示,所述私有镜像生成方法包括步骤S301-S310。其中,该实施例与图1所示的实施例的区别在于:增加了步骤S308-S310。下面将详细介绍S308-S310,其他步骤S301-S307与步骤S101-S107步骤一致,具体请参看图1实施例的描述。
S308,若接收到应用创建指令,获取所述应用创建指令中的私有镜像。
其中,应用创建指令有多种方式触发,如由用户触摸或者点击相关按钮或者图像触发,如在私有镜像的列表中,点击某一个私有镜像所对应的应用创建按钮,触发该私有镜像的应用创建指令;也可以接收用户的语音应用创建信息来触发等。该应用创建指令中的私有镜像中包括私有镜像的名称等标识信息。
S309,根据所述应用创建指令调用设置接口,以接收通过所述设置接口设置的需创建的容器应用的信息,其中,容器应用的信息中的容器应用的镜像为所述应用创建指令中的私有镜像。
设置接口是由开发人员开发的,可以以编辑界面的形式存在,通过设置接口设置需创建的容器应用的信息,其中,容器应用的信息中的容器应用的镜像默认为该应用创建指令中的私有镜像,无需再次重新设置。所设置的容器应用的信息包括容器应用的应用环境、容器应用的区域、容器应用的容器实例数量等。其中,容器应用的应用环境、容器应用的区域是指以私有镜像为镜像信息的容器应用的应用环境和区域,即所创建的容器应用的应用环境、容器应用的区域。而上文中的容器所在的应用环境、容器所在的区域是封装私有镜像的容器所在的应用环境和区域。
S310,根据所述应用创建指令中的私有镜像和所设置的容器应用的信息创建容器应用。
所设置的容器应用的信息包括容器应用的应用环境、容器应用的区域、容器应用的容器实例数量。而容器应用的镜像信息为私有镜像。
在一实施例中,所述方法还包括,将所创建的容器应用的信息更新至数据库。
在一实施例中,如图4所示,步骤S310包括以下步骤S311-S313。
S311,根据所述容器应用的应用环境、容器应用的区域、容器应用的容器实例数量确定所述容器应用的容器实例的IP。
根据所设置的容器应用的应用环境、容器应用的区域、容器应用的容器实例数量确定容器应用的容器实例的IP,包括:根据容器应用的应用环境、容器应用的区域确定容器应用创建的位置(如机房位置);根据所确定的容器应用创建的位置(如机房位置)确定预先分配的用于创建容器实例的IP地址池;从该IP地址池中获取与容器应用的容器实例数量相同的IP地址,将所获取的IP地址确定为容器应用的容器实例的IP。
S312,根据所述容器应用的应用环境、容器应用的区域、容器应用的容器实例数量、所述应用创建指令中的私有镜像确定创建所述容器应用的容器实例的宿主机。
根据容器应用的应用环境、容器应用的区域确定容器应用创建的位置;根据所确定的容器应用创建的位置确定宿主机集群;根据私有镜像的资源信息从所确定的宿主机集群中确定创建容器应用的容器实例的具体宿主机。具体地,确定具体宿主机集群是通过容器编排工具自动确定的,根据容器应用的应用环境、容器应用的区域,通过容器编排工具识别该容器应用所处的宿主机集群,容器编排工具根据私有镜像的资源信息、以及宿主机集群的资源情况从宿主机集群中确定创建容器应用的容器实例的宿主机。其中,容器编排工具可以为Marathon编排工具,还可以为其他的容器编排工具。其中,一个容器实例创建在一个宿主机上,可以理解地,一个容器实例对应一个宿主机。
其中,步骤S311和步骤S312的顺序并不做严格的限制,也可以先执行步骤S312,再执行步骤S311,其中,步骤S311、S312可以同时执行,也可以分开执行。
S313,根据所述应用创建指令中的私有镜像在所确定的宿主机上创建容器应用的容器实例,并将所确定的IP设置为所创建的容器实例的IP。
具体地,步骤S103包括:通过容器编排工具将私有镜像推送到所确定的宿主机上,以根据所述私有镜像在所述宿主机上创建该容器应用的容器实例;若该容器应用的容器实例创建完成,通过自动化运维工具连接所创建的容器实例,将所创建的容器实例与所确定的IP进行绑定,以将所确定的IP设置为所创建的容器实例的IP。
其中,容器编排工具可以为Marathon工具。将私有镜像发送到该容器编排工具,然后由容器编排工具将具体镜像分配下发到所确定的宿主机上,以进行容器实例的创建。其中,运维工具如自动化运维工具ansible。
在一实施例中,所设置的容器应用的信息还包括容器应用的使用时间、容器应用的资源组等。其中,容器应用的使用时间可以月为单位,还可以以其他的时间为单位。可以理解地,容器应用的容器实例创建成功后是需要收费的,容器应用的资源组下包括有资源账户,用于创建容器应用的容器实例所需要使用的费用。如此,如图4所示,在确定容器应用的容器实例IP和容器应用的容器实例所在的宿主机之前,步骤S310还包括以下步骤:
311a,根据所述容器实例的使用时间、所述容器应用的资源组、所述容器应用的容器实例数量来判断所述容器应用的资源组中是否有足够金额以用来创建该容器应用的容器实例。
由于创建的每个容器实例都是需要付费的,根据容器应用的容器实例数量、容器实例的使用时间、每个容器实例的费用计算创建当前容器应用需要支付的金额;判断容器应用的资源组中的剩余金额是否大于或者等于创建当前容器应用需要支付的金额;若是,则确定容器应用的资源组有足够金额以用来创建对应的容器应用;若否,则确定容器应用的资源组没有足够金额来进行创建。
若容器应用的资源组没有足够金额来创建,返回创建失败的原因。若有足够金额来创建该容器应用的容器实例,执行步骤S311。
该实施例进一步考虑了创建容器应用的一些实际情况。该实施例创建容器应用的过程自动完成,无需人工干预,提高了创建容器应用的速度。
在一实施例中,若所设置的容器应用的信息包括启用监控信息,以上容器应用创建的过程中还涉及有为所创建容器应用的容器实例启用监控,对应的步骤还包括:
将容器实例对应的启用监控信息中的启用监控标识推送到所确定的宿主机上,以根据宿主机的监控进程收集该容器实例的运行数据信息。
需要注意的是,默认所有宿主机上都会安装监控进程且该监控进程是启用状态。将启用监控标识推送到所确定的宿主机上,通过宿主机上安装的监控进程来监控该容器实例。如监控容器应用的容器实例的CPU、内存等资源。
需要注意的是,以上方法实施例的操作是需要有特定权限的用户才可以操作。在另一实施例中,在步骤S101(或者S201或者S301)之前,所述方法还包括:获取登陆用户的权限;判断登陆用户的权限与预设权限是否相同;若相同,对应执行步骤S101(或者S201或者S301),否则,进行提示。
图5是本申请实施例提供的私有镜像生成装置的示意性框图。该装置包括用于执行上述私有镜像生成方法所对应的单元。如图5所示,该私有镜像生成装置100包括封装单元101、大小获取单元102、大小判断单元103、仓库确定单元104、推送单元105、更新单元106。
封装单元101,用于若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像。
大小获取单元102,用于获取封装后的私有镜像的大小。
大小判断单元103,用于判断所述私有镜像的大小是否超过预设大小。
仓库确定单元104,用于若所述私有镜像的大小未超过预设大小,根据所述容器所在的应用环境和区域确定保存所述私有镜像的目的镜像仓库。
在一实施例中,仓库确定单元104包括环境区域获取单元、镜像仓库确定单元。其中,环境区域获取单元,用于获取所述容器所在的应用环境和区域。镜像仓库确定单元,用于获取所述应用环境和区域下预先设置的用于保存私有镜像的镜像仓库,将该镜像仓库确定为目的镜像仓库。
推送单元105,用于调用推送接口,将所述私有镜像推送至所述目的镜像仓库。
更新单元106,用于在数据库中添加所述私有镜像的信息。
在一实施例中,如图5所示,所述私有镜像生成装置100还包括移除单元107。移除单元107,用于若所述私有镜像的大小超过预设大小,移除所述私有镜像。
在另一实施例中,所述私有镜像生成装置还包括权限获取单元、权限判断单元。其中,权限获取单元,用于获取登陆用户的权限。权限判断单元,用于判断登陆用户的权限与预设权限是否相同。若登陆用户的权限与预设权限相同,触发封装单元101。若登陆用户的权限与预设权限不相同,则进行提示。
图6是本申请另一实施例提供的私有镜像生成装置的示意性框图。如图6所示,该私有镜像生成装置200包括封装单元201、大小获取单元202、大小判断单元203、仓库确定单元204、推送单元205、更新单元206、移除单元207、编辑获取单元208、编辑单元209。该实施例与所5所示的实施例的区域在于:增加了编辑获取单元208、编辑单元209。其他封装单元201、大小获取单元202、大小判断单元203、仓库确定单元204、推送单元205、更新单元206、移除单元207与图5实施例中的封装单元101、大小获取单元102、大小判断单元103、仓库确定单元104、推送单元105、更新单元106、移除单元107一一对应,再次不在赘述。下面将介绍该实施例与图5所示的实施例的区别之处。
编辑获取单元208,用于若接收到编辑指令,获取所述编辑指令中的待编辑的私有镜像。
编辑单元209,用于根据所述编辑指令调用编辑接口,以接收通过所述编辑接口设置的所述待编辑的私有镜像的修改信息。
更新单元206,还用于若接收到编辑完成指令,接收所述待编辑的私有镜像的修改信息,并将所述修改信息更新至数据库。
图7是本申请另一实施例提供的私有镜像生成装置的示意性框图。如图7所示,该私有镜像生成装置300包括封装单元301、大小获取单元302、大小判断单元303、仓库确定单元304、推送单元305、更新单元306、移除单元307、创建获取单元308、创建单元309。该实施例与所5所示的实施例的区域在于:增加了创建获取单元308、创建单元309。其他封装单元301、大小获取单元302、大小判断单元303、仓库确定单元304、推送单元305、更新单元306、移除单元307与图5实施例中的封装单元101、大小获取单元102、大小判断单元103、仓库确定单元104、推送单元105、更新单元106、移除单元107一一对应,再次不在赘述。下面将介绍该实施例与图5所示的实施例的区别之处。
创建获取单元308,用于若接收到应用创建指令,获取所述应用创建指令中的私有镜像。
创建获取单元308,还用于根据所述应用创建指令调用设置接口,以接收通过所述设置接口设置的需创建的容器应用的信息,其中,容器应用的信息中的容器应用的镜像为所述应用创建指令中的私有镜像。
创建单元309,用于根据所述应用创建指令中的私有镜像和所设置的容器应用的信息创建容器应用。
在一实施例中,所述更新单元306,还用于将所创建的容器应用的信息更新至数据库。
在一实施例中,所设置的容器应用的镜像信息包括容器应用的应用环境、容器应用的区域、容器应用的容器实例数量。如图8所示,创建单元309包括IP确定单元3091、宿主机确定单元3092、容器创建单元3093。
IP确定单元3091,用于根据所述容器应用的应用环境、容器应用的区域、容器应用的容器实例数量确定所述容器应用的容器实例的IP。
宿主机确定单元3092,用于根据所述容器应用的应用环境、容器应用的区域、容器应用的容器实例数量、所述应用创建指令中的私有镜像确定创建所述容器应用的容器实例的宿主机。
容器创建单元3093,用于根据所述应用创建指令中的私有镜像在所确定的宿主机上创建容器应用的容器实例,并将所确定的IP设置为所创建的容器实例的IP。
在一实施例中,所设置的容器应用的信息还包括器应用的使用时间、容器应用的资源组等。所述创建单元309还包括金额判断单元3091a。其中,金额判断单元3091a,用于根据所述容器实例的使用时间、所述容器应用的资源组、所述容器应用的容器实例数量来判断所述容器应用的资源组中是否有足够金额以用来创建该容器应用的容器实例。
若容器应用的资源组没有足够金额来创建,返回创建失败的原因。若有足够金额来创建该容器应用的容器实例,触发IP确定单元3091。
在一实施例中,所设置的容器应用的信息还包括启用监控信息,所述创建单元309还包括监控启用单元。其中,监控启用单元,用于将容器实例对应的启用监控信息中的启用监控标识推送到所确定的宿主机上,以根据宿主机的监控进程收集该容器实例的运行数据信息。如监控容器应用的容器实例的CPU、内存等资源运行数据信息。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述装置可以实现为一种计算机程序的形式,计算机程序可以在如图9所示的计算机设备上运行。
图9为本申请实施例提供的一种计算机设备的示意性框图。该设备为终端等设备,如PaaS平台中的服务器等。该设备100包括通过系统总线101连接的处理器102、存储器和网络接口103,其中,存储器可以包括非易失性存储介质104和内存储器105。
该非易失性存储介质104可存储操作系统1041和计算机程序1042。该非易失性存储介质中所存储的计算机程序1042被处理器102执行时,可实现上述服务器中所述的私有镜像生成方法。该处理器102用于提供计算和控制能力,支撑整个设备100的运行。该内存储器105为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器102执行时,可使得处理器102执行上述服务器中所述的私有镜像生成方法。该网络接口103用于进行网络通信。本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器102用于运行存储在存储器中的计算机程序,以实现上述私有镜像生成方法的任一实施例。
应当理解,在本申请实施例中,所称处理器102可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(应用程序lication Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序可存储于一存储介质中,该存储介质可以为计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本申请还提供了一种存储介质。该存储介质可以为计算机可读存储介质,该计算机可读存储介质包括非易失性计算机可读存储介质。该存储介质存储有计算机程序,该计算机程序当被处理器执行时实现上述私有镜像生成方法的任一实施例。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种私有镜像生成方法,其特征在于,所述方法包括:
若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像;
获取封装后的私有镜像的大小;
判断所述私有镜像的大小是否超过预设大小;
若所述私有镜像的大小未超过预设大小,根据所述容器所在的应用环境和区域确定保存所述私有镜像的目的镜像仓库;
调用推送接口,将所述私有镜像推送至所述目的镜像仓库;
在数据库中添加所述私有镜像的信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述私有镜像的大小超过预设大小,移除所述私有镜像。
3.根据权利要求1所述的方法,其特征在于,所述根据所述容器确定保存所述私有镜像的目的镜像仓库,包括:
获取所述容器所在的应用环境和区域;
获取所述应用环境和区域下预先设置的用于保存私有镜像的镜像仓库,将该镜像仓库确定为目的镜像仓库。
4.根据权利要求1所述的方法,其特征在于,在所述若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像之前,所述方法还包括:
获取当前登陆用户的权限;
判断所述当前登陆用户的权限与预设权限是否相同;
若所述当前登陆用户的权限与预设权限相同,执行所述若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像的步骤。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到编辑指令,获取所述编辑指令中的待编辑的私有镜像;
根据所述编辑指令调用编辑接口,以接收通过所述编辑接口设置的所述待编辑的私有镜像的修改信息;
若接收到编辑完成指令,接收所述待编辑的私有镜像的修改信息,并将所述修改信息更新至数据库。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到应用创建指令,获取所述应用创建指令中的私有镜像;
根据所述应用创建指令调用设置接口,以接收通过所述设置接口设置的需创建的容器应用的信息,其中,容器应用的镜像为所述应用创建指令中的私有镜像;
根据所述应用创建指令中的私有镜像和所设置的容器应用的信息创建容器应用。
7.根据权利要求6所述的方法,其特征在于,所设置的需创建的容器应用的信息包括容器应用的应用环境、容器应用的区域、容器应用的容器实例数量;所述根据所述应用创建指令中的私有镜像和所设置的容器应用的信息创建容器应用,包括:
根据所述容器应用的应用环境、容器应用的区域、容器应用的容器实例数量确定所述容器应用的容器实例的IP;
根据所述容器应用的应用环境、容器应用的区域、容器应用的容器实例数量、所述应用创建指令中的私有镜像确定创建所述容器应用的容器实例的宿主机;
根据所述应用创建指令中的私有镜像在所确定的宿主机上创建容器应用的容器实例,并将所确定的IP设置为所创建的容器实例的IP。
8.一种私有镜像生成装置,其特征在于,所述私有镜像生成装置包括:
封装单元,用于若接收到私有镜像生成指令,调用生成接口,以通过所述生成接口将产生所述私有镜像生成指令的容器封装成私有镜像;
大小获取单元,用于获取封装后的私有镜像的大小;
大小判断单元,用于判断所述私有镜像的大小是否超过预设大小;
仓库确定单元,用于若所述私有镜像的大小未超过预设大小,根据所述容器所在的应用环境和区域确定保存所述私有镜像的目的镜像仓库;
推送单元,用于调用推送接口,将所述私有镜像推送至所述目的镜像仓库;
更新单元,用于在数据库中添加所述私有镜像的信息。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器,以及与所述存储器相连的处理器;
所述存储器用于存储计算机程序;所述处理器用于运行所述存储器中存储的计算机程序,以执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410614.XA CN110262829A (zh) | 2019-05-17 | 2019-05-17 | 私有镜像生成方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410614.XA CN110262829A (zh) | 2019-05-17 | 2019-05-17 | 私有镜像生成方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110262829A true CN110262829A (zh) | 2019-09-20 |
Family
ID=67914741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910410614.XA Pending CN110262829A (zh) | 2019-05-17 | 2019-05-17 | 私有镜像生成方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110262829A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296873A (zh) * | 2020-05-15 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 镜像构建方法和装置、终端设备和计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170094158A1 (en) * | 2015-09-30 | 2017-03-30 | Ricoh Co., Ltd. | Algorithm to Estimate Yaw Errors in Camera Pose |
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
CN109634718A (zh) * | 2018-12-13 | 2019-04-16 | 无锡华云数据技术服务有限公司 | 云平台创建镜像的方法及系统 |
-
2019
- 2019-05-17 CN CN201910410614.XA patent/CN110262829A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170094158A1 (en) * | 2015-09-30 | 2017-03-30 | Ricoh Co., Ltd. | Algorithm to Estimate Yaw Errors in Camera Pose |
CN107766126A (zh) * | 2017-11-15 | 2018-03-06 | 腾讯科技(深圳)有限公司 | 容器镜像的构建方法、系统、装置及存储介质 |
CN109634718A (zh) * | 2018-12-13 | 2019-04-16 | 无锡华云数据技术服务有限公司 | 云平台创建镜像的方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296873A (zh) * | 2020-05-15 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 镜像构建方法和装置、终端设备和计算机存储介质 |
CN113296873B (zh) * | 2020-05-15 | 2024-08-06 | 阿里巴巴集团控股有限公司 | 镜像构建方法和装置、终端设备和计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108279892B (zh) | 一种拆分大型应用服务为微服务的方法、装置及设备 | |
CN108572795B (zh) | 基于搭建存储虚拟化的扩容方法、装置、设备和存储介质 | |
CN105653630B (zh) | 分布式数据库的数据迁移方法与装置 | |
CN110275717A (zh) | 私有镜像克隆方法、装置、计算机设备及存储介质 | |
CN110286997A (zh) | 多容器应用创建方法、装置、计算机设备及存储介质 | |
CN110275775A (zh) | 容器应用的资源配置方法、系统及存储介质 | |
CN110289983A (zh) | 负载均衡应用创建方法、装置、计算机设备及存储介质 | |
US20140040441A1 (en) | System and method for the configuration of a clustered simulation network | |
CN110750415B (zh) | 接口服务配置方法、装置、介质和计算机设备 | |
CN110225094A (zh) | 负载均衡应用虚拟ip切换方法、装置、计算机设备及存储介质 | |
CN111600760A (zh) | 一种电网运行监控系统的质量检测系统、方法及设备 | |
CN113254033A (zh) | 一种母盘文件生成方法、装置、电子设备及存储介质 | |
CN103294481A (zh) | 用于cst计算程序的处理方法 | |
CN110262829A (zh) | 私有镜像生成方法、装置、计算机设备及存储介质 | |
CN115729673A (zh) | 集群管理方法、管理模块、电子设备及介质 | |
CN103294482B (zh) | 用于PWscf并行计算系统的Web服务封装方法以及系统 | |
CN114489939A (zh) | 一种组件部署方法、系统以及计算机可读介质 | |
CN106878945A (zh) | 定位系统性能的优化方法、装置及移动终端 | |
CN110290172A (zh) | 容器应用克隆方法、装置、计算机设备及存储介质 | |
CN109905253B (zh) | 一种日志信息采集方法及装置 | |
CN111124854A (zh) | 一种冒烟测试用例分配方法、系统、终端及存储介质 | |
CN113688992B (zh) | 一种模型优化系统和方法 | |
CN115617668A (zh) | 一种兼容性测试方法、装置及设备 | |
CN110007943A (zh) | 一种基于Android系统的应用程序更新管理方法及系统 | |
CN115237441A (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 |