Processing

Please wait...

Settings

Settings

1. WO2020001162 - CONTAINER MANAGEMENT METHOD, APPARATUS, AND DEVICE

Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192  

权利要求书

1   2   3   4   5   6   7   8   9   10   11   12   13  

附图

1 (R26)   2 (R26)   3 (R26)   4 (R26)   5 (R26)   6 (R26)   7 (R26)   8 (R26)   9 (R26)   10 (R26)   11 (R26)  

说明书

发明名称 : 容器管理方法、装置和设备

技术领域

[0001]
本申请涉及计算机技术领域,尤其涉及一种容器管理方法、装置和设备。

背景技术

[0002]
容器技术是一种轻量级的虚拟化技术,用于实现服务器资源的共享。容器可以为进程提供虚拟的执行环境,一个虚拟的执行环境就是一个容器。容器镜像提供容器运行时所需的程序、库、资源和配置,其不包含任何动态数据,是个只读的特殊文件系统。一个容器管理系统可以基于容器镜像分发并运行容器,也可以将容器转换成容器镜像并保存。
[0003]
传统技术中,在一个主机上装载有容器管理系统,该容器管理系统可为用户发放容器,并在该主机上为该用户提供存储容器镜像的存储空间。用户可以自定义容器镜像,并存储该容器镜像至上述存储空间,而其他用户可以自行下载该容器镜像并启动容器。
[0004]
然而,上述容器管理系统在发放容器时,用户不仅可以获得该用户存储的容器镜像,也可以获得其他用户存储的容器镜像,可能会导致用户数据的泄露,存在安全问题。
[0005]
发明内容
[0006]
本申请提供一种容器管理方法、装置和设备,以克服传统技术中存在的安全问题。
[0007]
一方面,本申请提供一种容器管理方法,包括:获取容器发放请求,该容器发放请求是用于发放基于第一容器镜像的第一容器的请求,该容器发放请求携带第一容器镜像的标识和第一用户的标识;查询该第一用户的标识所对应的容器镜像信息库,由于该容器镜像信息库用于存储第一用户的标识与第一容器镜像的映射关系,因而当该容器镜像信息库中存在第一容器镜像的标识时,根据第一容器镜像的标识获取第一容器镜像,由此实现根据该第一容器镜像发放第一容器。通过在容器发放过程中,查询该第一用户的容器镜像信息库,而不查询其他用户的容器镜像信息库,更不会获取其他用户的容器镜像,从而实现了容器发放过程中的用户数据的用户级隔离,保证了用户数据的安全性。
[0008]
在一种可能的实现方式中,注册并创建上述容器镜像信息库,在注册时,还获得了第一用户的标识,该容器镜像信息库用于存储与第一用户的标识关联的一个或者多个容器镜像的标识;若第一容器镜像是第一用户的标识关联的一个或者多个容器镜像之一,则该容器镜像信息库中包括第一容器镜像的标识。注册并创建上述容器镜像信息库,可以保证该容器镜像信息库与第一用户的标识的对应性,无法根据其他用户的标识获得第一用户的容器镜像信息库,进一步保证了第一用户的用户数据的安全性。
[0009]
在另一种可能的实现方式中,根据第一容器镜像的标识获取第一容器镜像的信息, 第一容器镜像的信息可以包含于上述容器镜像信息库中,也可以包含于其他信息集合中,且通过该第一容器镜像的标识能够获取到该第一容器镜像的信息,从而根据第一容器镜像的信息可以获得第一容器镜像。此外,该第一容器镜像可以存储于本地存储空间中。通过该获取方式,保证了用户数据的安全性。
[0010]
在另一种可能的实现方式中,当容器发放请求所携带的第一容器镜像的标识不包含于上述容器镜像信息库中时,还可以根据第一容器镜像的属性从容器镜像仓库中获取第一容器镜像;当第一容器镜像的属性是私有时,该容器镜像仓库是第一用户的私有容器镜像仓库;当第一容器镜像的属性是公有时,该容器镜像仓库是公有容器镜像仓库。第一用户的私有容器镜像仓库和公有容器镜像仓库的存储位置可以不在本地存储空间中,例如存储在云端,有利于容器镜像的集中管理。此外,容器镜像按照其属性为公有或者私有进行分开存储,便于后续的查找和隔离,进一步保证用户数据的安全性。
[0011]
在另一种可能的实现方式中,该方法还可以包括:根据第一容器生成第二容器镜像,该第二容器镜像与第一容器镜像可以相同或者不同,其中第二容器镜像包括有第一用户的信息、应用和/或驱动;还可以将第二容器镜像的标识添加到上述容器镜像信息库中,即在上述容器镜像信息库中将第二容器镜像的标识与第一用户的标识关联;还可以将第二容器镜像上传至第一用户的私有容器镜像仓库,以用于容器发放,且由此实现不同用户数据的隔离,保证用户数据的安全性。
[0012]
在另一种可能的实现方式中,在查询第一用户的标识对应的容器镜像信息库之前,还可以根据第一用户的标识获得鉴权结果;当鉴权结果是通过时,进行查询上述容器镜像信息库的操作。鉴权操作可以使用严密的鉴权算法进一步提高该容器管理方法中的用户数据的安全性。
[0013]
第二方面,本申请提供一种容器管理装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的容器管理方法的各个模块。
[0014]
第三方面,提供了一种容器管理设备,所述装置包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现上面所述的任一容器管理方法。
[0015]
第四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上面所述的任一容器管理方法。
[0016]
第五方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上面所述的任一容器管理方法。
[0017]
本申请提供的技术方案至少包括以下有益效果:
[0018]
本申请查询用户的标识对应的容器镜像信息库,从该用户的容器镜像信息库中查询到容器镜像的标识后,再基于该容器镜像的标识获得容器镜像,进而基于该容器镜像发放容器。使得在容器发放的过程中,查询该用户的容器镜像信息库,而不查询其他用户的容器镜像信息库,更不会获取其他用户的容器镜像,从而实现了容器发放过程中的用户数据的用户级隔离,保证了用户数据的安全性。
[0019]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不 能限制本申请。

附图说明

[0020]
图1是传统技术中容器镜像的存储形式的示意图;
[0021]
图2是本发明实施例提供的一种容器管理方法所涉及的系统架构图;
[0022]
图3是本发明实施例提供的容器管理方法中的容器镜像信息库的示意图;
[0023]
图4是本发明实施例提供的一种容器管理方法的流程图;
[0024]
图5是本发明实施例提供的一种容器管理方法的流程图;
[0025]
图6是本发明实施例提供的一种容器管理方法所涉及的系统架构图;
[0026]
图7是本发明实施例提供的一种容器管理方法的流程图;
[0027]
图8是本发明实施例提供的一种容器管理方法的流程图;
[0028]
图9是本发明实施例提供的一种容器管理装置的结构方框图;
[0029]
图10是本发明实施例提供的一种容器管理装置的结构方框图;
[0030]
图11是本发明实施例提供的一种容器管理装置的结构方框图。

具体实施方式

[0031]
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0032]
在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的应用场景予以介绍。
[0033]
容器技术是一种轻量级的虚拟化技术,用于实现服务器资源的共享。容器技术可以为进程提供虚拟的执行环境,一个容器提供一个虚拟的执行环境,该虚拟的执行环境可绑定特定的中央处理器(central processing unit,CPU)和内存节点,分配特定比例的CPU时间、输入输出(input output,IO)时间,限制可以使用的内存大小,提供设备访问控制等。与虚拟机相比,容器具有更轻量、更易分发、性能更高、损耗更小等特点。
[0034]
容器镜像提供容器运行时所需的程序、库、资源和配置,不包含任何动态数据,是只读的特殊文件,容器镜像包括以下信息中的一个或者多个:用户的信息、应用和驱动。容器镜像是分层结构,包括多层只读数据,其中包括以下层中的一个或者多个:基础镜像层、应用程序层和用户自定义层等。通过统一文件系统(union file system,UFS)技术可以将多个只读层整合成一个容器镜像。
[0035]
容器是基于容器镜像创建的实例,该实例是包括实现该容器镜像的功能所需要的用户配置和运行配置的对象。基于容器镜像发放容器可以是在容器镜像的只读层的基础上增加读写层,并可以通过联合安装(union mount,UM)技术将该多个只读层和读写层整合成一个容器。容器根据应用场景的不同分为应用容器和系统容器。应用容器主要面向无状态应用编排调度,应用容器镜像包含应用本身和运行环境配置。系统容器则是面向如CPU、内存、存储等计算资源的编排调度,系统容器拥有全量操作系统(operating system,OS)环境,支持有状态应用,能够提供动态资源分配。
[0036]
传统技术中,提供计算服务的计算服务系统一般包括用于对所提供的计算服务进 行管理的管理主机和提供具体的计算服务的业务主机,此外,该计算服务系统还可以包括存储主机,存储主机用于存储所提供的计算服务的相关数据。在一个业务主机上装载有容器管理系统,为用户发放在该业务主机上运行的容器,并在该业务主机上为该用户提供存储容器镜像的本地存储空间。在该业务主机的本地存储空间中,可能存储有一个或者多个用户的多个容器镜像。容器镜像的属性可以包括:公有和私有,属性为公有的容器镜像称为公有容器镜像,是指该容器镜像是面向所有用户开放的容器镜像;属性为私有的容器镜像称为私有容器镜像,是指该容器镜像是某个用户私有的容器镜像,该私有容器镜像可以由用户指定是否开放给所有用户使用。如图1所示,在业务主机上,存储有第一用户的容器镜像A和容器镜像B、第二用户的容器镜像B和容器镜像C。其中,容器镜像B是公有容器镜像,容器镜像A是第一用户的私有容器镜像,容器镜像C是第二用户的私有容器镜像。容器镜像A、容器镜像B和容器镜像C在业务主机上的存储在用户级别上不是隔离的。在第一用户通过容器管理系统发放容器时,可以在业务主机的本地存储空间中获得第一用户的容器镜像和第二用户的容器镜像,即容器镜像A、容器镜像B和容器镜像C,可以基于容器镜像A、容器镜像B或者容器镜像C发放容器。第二用户通过容器管理系统发放容器时,情况与第一用户类似,在此不再赘述。可见,该容器管理系统无法提供在业务主机上的不同用户的容器镜像的隔离,不利于保护用户数据的安全性。
[0037]
为了保护用户数据的安全性,本发明提供了一种容器管理方案,以实现容器发放过程中用户数据的用户级隔离。该容器管理方案可以基于基础设施即服务(infrastructure as a service,IaaS)为用户提供容器管理方案,IaaS可以基于完善的计算机基础设施提供计算服务,例如,云计算服务。
[0038]
参见图2,其示出了本发明实施例的一种云服务管理系统的系统架构。在该系统架构中,包括业务主机、管理主机和存储主机。其中,业务主机用于提供具体的云计算服务,管理主机用于对所提供的云计算服务进行管理,存储主机用于存储所提供的云计算服务的相关数据。
[0039]
需要说明的是,业务主机、管理主机和存储主机可以是同一个物理主机或者虚拟主机,也可以是不同的物理主机或者虚拟主机,该物理主机或者虚拟主机可以是IaaS计算资源池中的主机。
[0040]
进一步地,在该云服务管理系统中运行有容器管理系统,该容器管理系统至少包括容器引擎和容器镜像仓库。以图2所示的系统架构为例,业务主机至少部署有云服务管理系统的计算控制模块、容器管理系统的容器引擎和容器镜像仓库;管理主机至少部署有云服务管理系统的鉴权模块;存储主机至少部署有容器管理系统的容器镜像仓库,该容器镜像仓库包括公有容器镜像仓库和私有容器镜像仓库。可选地,除图2所示的系统外,本发明实施例所涉及的云服务管理系统中还可以包括部署了计算控制模块和容器引擎的其他业务主机,容器管理系统的各个模块在业务主机、管理主机和存储主机上的部署方式也不限于以上举例。
[0041]
其中,计算控制模块用于部署云计算,包括运行实例、管理网络以及控制用户等。鉴权模块用于管理身份验证、服务规则和令牌功能的模块。容器引擎用于容器相关的 管理、用户管理等。容器镜像仓库用于容器镜像的存储与分发,包括公有容器镜像仓库和私有容器镜像仓库。
[0042]
除了部署于存储主机的容器镜像仓库用于存储容器镜像之外,业务主机的本地存储空间中还存储有用户的一个或者多个容器镜像,该用户是注册于该业务主机上的容器引擎的用户,该一个或者多个容器镜像可以从上述容器镜像仓库中的公有容器镜像仓库或者该用户的私有容器镜像仓库中下载得到,也可以是该业务主机上的容器转换得到。
[0043]
容器镜像信息库包括在该业务主机的本地存储空间中与该用户的标识关联的容器镜像的标识,通过容器镜像的标识还可以获得容器镜像的信息,该容器镜像的信息包括以下信息中的一种或者多种:容器镜像的属性和容器镜像的存储位置信息,例如存储索引信息等。需要说明的是,该容器镜像的信息可以包含于用户的容器镜像信息库中,也可以存储于其他信息存储空间或者包含于其他信息集合中,但无论存储在哪里,均可以通过该容器镜像的标识与该容器镜像的信息之间的映射关系查找得到。其中,该用户的标识可以是用户的标号(identification,ID)和/或用户的令牌(token)。容器镜像的标识可以是该容器镜像的ID和/或容器镜像的名称。需要说明的是,用户具有查询该用户的容器镜像信息库的权限,但没有查询其他用户的容器镜像信息库的权限。
[0044]
参见图3,其示出了用户的容器镜像信息库的一种示例。在第一用户的容器镜像信息库中,包括有容器镜像A的标识和容器镜像B的标识。在第二用户的容器镜像信息库中,包括有容器镜像B的标识和容器镜像C的标识。其中,容器镜像B是公有容器镜像,容器镜像A是第一用户的私有容器镜像,容器镜像C是第二用户的私有容器镜像。容器镜像A包括A1层、A2层和B层;容器镜像B包括B层;容器镜像C包括B层和C层。例如,A1层是第一用户的用户自定义层,A2层是第一用户的应用程序层,B层是公有的基础镜像层,C层是第二用户的用户自定义层。在容器镜像信息库中还包括容器镜像A的A1层、A2层和B层的存储索引信息,容器镜像B的B层的存储索引信息,容器镜像C的B层和C层的存储索引信息。
[0045]
另外,在该业务主机中的第一用户的容器镜像信息库包括与第一用户的标识关联的容器镜像的标识,第二用户的容器镜像信息库包括与第二用户的标识关联的容器镜像的标识,用户不能查询其他用户的容器镜像信息库,也即不能获得其他用户的容器镜像信息库中的容器镜像的标识,从而可以实现用户数据的用户级隔离。
[0046]
下面以图2所示的系统架构为例,对本发明的方法实施例予以介绍。参见图4,其示出了本发明实施例提供的一种容器管理方法的流程图,该方法针对容器发放的过程进行管理,包括:
[0047]
步骤401、计算控制模块获取第一用户的注册请求,根据该注册请求对第一用户的信息进行注册并得到第一用户的标识。
[0048]
其中,该第一用户的注册请求是通过业务主机中的计算控制模块获得的,例如,计算控制模块的用户交互界面获取第一用户的信息,基于该第一用户的信息生成第一用户的标识。
[0049]
步骤402、容器引擎从计算控制模块获取第一用户的标识。
[0050]
步骤403、容器引擎基于第一用户的标识注册并创建第一用户的容器镜像信息库,容器镜像信息库包括第一用户的标识关联的一个或者多个容器镜像的标识。
[0051]
其中,第一用户的容器镜像信息库参见图2相关说明,在此不再赘述。
[0052]
步骤404、容器引擎将第一用户的容器镜像信息库存入容器引擎所在的业务主机的本地存储空间中。
[0053]
需要说明的是,上述步骤401至步骤404为创建容器镜像信息库的过程,针对容器发放,并不是每次都需要重新创建容器镜像信息库,因而上述步骤401至步骤404为容器发放过程中的可选步骤。
[0054]
步骤405、容器引擎获取容器发放请求,该容器发放请求携带第一用户的标识和第一容器镜像的标识。
[0055]
其中,第一容器镜像的标识用于指示该容器发放请求所请求发放的第一容器所需要的第一容器镜像,可选地,第一容器镜像的标识可以是第一容器镜像的ID和/或第一容器镜像的名称;第一用户的标识用于发放容器过程中鉴权、获取第一用户的容器镜像仓库等操作,可选地,第一用户的标识可以包括第一用户的ID和/或第一用户的令牌。
[0056]
在一种可能的实现方式中,步骤405包括:
[0057]
容器引擎通过用户交互界面获得用户的容器发放请求。
[0058]
可选地,该用户交互界面还可以由部署于业务主机或者管理主机上的其他组件实现,通过该用户交互界面获得容器发放请求,并将其输出至容器引擎,由容器引擎获得。
[0059]
步骤406、容器引擎从本地存储空间中获取第一用户的标识对应的容器镜像信息库。
[0060]
可选地,第一用户的容器镜像信息库与第一用户的ID是一一对应的,第一用户的标识对应的容器镜像信息库即是第一用户的ID对应的容器镜像信息库。第一用户的ID可以是容器引擎通过部署于业务主机中的计算控制模块获得的,该第一用户的ID是在第一用户通过计算控制模块注册时产生的。
[0061]
在一种可能的实现方式中,第一用户的容器镜像信息库是以数据文件的形式存储于容器引擎所在的业务主机的本地存储空间中,该容器镜像信息库包括与第一用户的ID关联的一个或者多个容器镜像的标识。
[0062]
为了确认第一用户具有当前操作的权限,步骤406的一种可选实现方式包括:容器引擎基于第一用户的标识获取鉴权结果,当鉴权通过时,容器引擎查询第一用户的标识对应的容器镜像信息库。该鉴权操作可以是该容器引擎基于容器管理系统中的用户注册信息对第一用户的令牌进行鉴权,也可以是容器引擎通过接口将第一用户的令牌输出至其他鉴权模块进行鉴权。
[0063]
步骤407、容器引擎在第一用户的标识对应的容器镜像信息库中查询第一容器镜像的标识。
[0064]
在一种可能的实现方式中,步骤407包括:
[0065]
容器引擎根据第一用户的ID在第一用户的标识对应的容器镜像信息库中查询第一容器镜像的标识。该第一容器镜像的标识可以用于获得第一容器镜像的信息。该第 一容器镜像的信息可以包括:第一容器镜像所包括的一个或者多个只读层的标识,以及该一个或者多个只读层的存储索引信息,该存储索引信息用于在本地存储空间中获得只读层。该第一容器镜像的信息可以包含于第一用户的容器镜像信息库中,也可以存储于其他信息存储空间或者包含于其他信息集合中。
[0066]
当容器镜像信息库中存在第一容器镜像的标识时,执行步骤408,当容器镜像信息库中不存在第一容器镜像的标识时,容器引擎还可以从容器镜像仓库中获取第一容器镜像,一种可选的实施方式为该方法还包括:
[0067]
当容器镜像信息库中不存在第一容器镜像的标识,且第一容器镜像的属性是私有时,容器引擎从第一用户的私有容器镜像仓库中获取第一容器镜像;
[0068]
当容器镜像信息库中不存在第一容器镜像的标识,且第一容器镜像的属性是公有时,容器引擎从公有容器镜像仓库中获取第一容器镜像。
[0069]
其中,第一用户的私有容器镜像仓库和公有容器镜像仓库可以部署于业务主机或者其他主机上,容器引擎可以通过本地接口或者远程接口从第一用户的私有容器镜像仓库或者公有容器镜像仓库中获取第一容器镜像。
[0070]
其中,第一容器镜像的属性参见图2相关说明,在此不再赘述。
[0071]
可选地,第一容器镜像的属性是容器引擎根据第一镜像的标识从管理主机中查询得到的。
[0072]
步骤408、当第一用户的容器镜像信息库中存在第一容器镜像的标识时,容器引擎基于第一容器镜像的标识从容器引擎所在主机的本地存储空间中获取第一容器镜像,并根据第一容器镜像发放第一容器。
[0073]
在一种可能的实现方式中,当第一用户的容器镜像信息库中存在第一容器镜像的标识时,步骤408包括:
[0074]
容器引擎根据第一容器镜像的标识获取第一容器镜像的信息;容器引擎基于第一容器镜像的信息从本地存储空间中获取第一容器镜像,容器引擎根据第一容器镜像启动第一容器。例如,容器引擎根据第一容器镜像的信息从本地存储空间中获得第一容器镜像所包括的一个或者多个只读层;容器引擎将该一个或者多个只读层与待发放的第一容器所需要的读写层通过UM技术整合成第一容器,并发放第一容器。
[0075]
本发明提供的方法,查询用户的标识对应的容器镜像信息库,从该用户的容器镜像信息库中查询到容器镜像的标识后,再基于该容器镜像的标识获得容器镜像,进而基于该容器镜像发放容器。使得在容器发放的过程中,仅查询该用户的容器镜像信息库,而不查询其他用户的容器镜像信息库,更不会获取其他用户的容器镜像,从而实现了容器发放过程中的用户数据的用户级隔离,保证了用户数据的安全性。
[0076]
基于上述实施例,在一种可选实现方式中,该容器管理方法还可以用于管理提交容器镜像的过程。参见图5,其示出了本发明实施例提供的一种容器管理方法的流程图,该方法针对提交容器镜像的过程进行管理,包括:
[0077]
步骤501、容器引擎获取容器镜像提交请求,容器镜像提交请求用于请求将第二容器转换成第二容器镜像并提交。
[0078]
其中,第二容器是第一用户在业务主机中的一个容器实例,容器镜像提交请求携带有第一用户的标识和第二容器的标识。可选地,第二容器的标识可以是第二容器的 ID和/或第二容器的名称;第一用户的标识用于容器镜像提交过程中鉴权、获取第一用户的容器镜像仓库等操作,可选地,第一用户的标识可以包括第一用户的ID和/或第一用户的令牌。
[0079]
该容器镜像提交请求可以是容器引擎通过用户交互界面获得用户发出的容器镜像提交请求。可选地,该用户交互界面还可以由部署于业务主机或者管理主机上的其他组件实现,该组件通过该用户交互界面获得容器镜像提交请求,并将其输出至容器引擎,由容器引擎获得。
[0080]
步骤502、容器引擎获取第二容器,该第二容器存储于容器引擎所在主机的本地存储空间中。
[0081]
步骤503、容器引擎根据第二容器生成第二容器镜像。
[0082]
在一种可能的实现方式中,步骤503包括:
[0083]
容器引擎将第二容器所包括的只读层分别读取并逐层加载得到第二容器镜像。
[0084]
为了确认第一用户具有当前操作的权限,该容器镜像提交请求还包括第一用户的令牌,步骤503的一种可选实施方式包括:
[0085]
容器引擎根据第一用户的令牌获取鉴权结果;
[0086]
若鉴权通过,容器引擎根据第二容器生成第二容器镜像。
[0087]
其中,该鉴权操作参见步骤406的相关说明,在此不再赘述。
[0088]
步骤504、容器引擎将第二容器镜像的标识添加至第一用户的容器镜像信息库。
[0089]
在一种可选的实现方式中,步骤504包括:
[0090]
第一用户的容器镜像信息库存储于业务主机中,容器引擎根据第一用户的ID在该业务主机中获得第一用户的容器镜像信息库;容器引擎将第二容器镜像存入业务主机的本地存储空间中,并将第二容器镜像的标识添加至第一用户的容器镜像信息库,并将第二容器镜像的信息与第一用户的标识关联。
[0091]
为了确认第一用户具有当前操作的权限,步骤504的一种可选的实现方式包括:
[0092]
容器引擎基于第一用户的标识获取鉴权结果,该鉴权操作可以参见步骤406中的相关说明,在此不再赘述;
[0093]
若鉴权通过,将第二容器镜像的标识添加至第一用户的容器镜像信息库,该添加操作可以由容器引擎实现,还可以由部署于管理主机上的其他组件实现。
[0094]
其中,基于第一用户的标识进行鉴权可以是容器引擎基于第一用户的标识所包括的第一用户的令牌进行鉴权。
[0095]
可选地,该方法还包括:步骤505,容器引擎将第二容器镜像上传至第一用户的私有容器镜像仓库。示例性地,容器引擎通过本地接口或者远程接口将第二容器镜像存入第一用户的私有容器镜像仓库。例如,容器引擎通过本地接口或者远程接口将第二容器镜像存入存储主机上的第一用户的私有容器镜像仓库。
[0096]
本发明实施例将用户的容器转换为容器镜像,并将该容器镜像的标识加入该用户的容器镜像信息库,使得该用户的容器镜像信息库包括属于该用户的容器镜像的标识,可获得业务主机的存储空间中属于该用户的容器镜像,而不获得其他用户的容器镜像,从而实现了用户数据的用户级隔离,保证了用户数据的安全性。
[0097]
在一种可能的实现方式中,云服务管理系统可以是openstack,容器管理系统可以是docker容器管理系统。参见图6,其示出了一种基于openstack的docker容器管理系统的系统架构图。如图6所示,openstack至少包括nova、keystone(鉴权)和glance(openstack镜像服务组件)。其中,nova包括nova api(接口)、nova conductor、nova scheduler(调度器)和nova compute(计算)。docker容器管理系统至少包括docker和docker registry(仓库)。在业务主机上部署nova compute和docker;在管理主机上部署nova api、nova conductor、nova scheduler、keystone和glance;在业务主机、管理主机或者存储主机上部署docker registry。需要说明的是,业务主机、管理主机和存储主机可以是同一个物理主机或者虚拟主机,上述各个组件在业务主机、管理主机和存储主机的部署方式不限于以上举例。
[0098]
在图6所示的基于openstack的docker容器管理系统中,各个组件的功能如下:
[0099]
nova用于对接docker相关接口在业务主机上实现容器的管理,功能与上述云服务管理系统类似。
[0100]
keystone是鉴权模块,用于对接docker相关接口对用户的标识进行鉴权。
[0101]
glance用于对接docker相关接口管理用户信息和容器镜像的信息。容器镜像的信息包括但不限于以下信息:容器镜像的标识和容器镜像的属性。
[0102]
docker用于在业务主机上实现用户的管理和容器的管理,功能与上述容器引擎类似。
[0103]
docker registry用于容器镜像的存储与分发,包括公有registry和私有registry,公有registry中储存有公有容器镜像,私有registry中储存有用户的私有容器镜像,功能与上述容器镜像管理仓库类似。
[0104]
此外,docker还可以包括以下接口中的一个或者多个:
[0105]
docker鉴权接口,用于对用户的标识进行鉴权,鉴权结果用于判断该用户是否具有当前操作的权限;若鉴权结果是通过,则该用户具有当前操作的权限;若鉴权结果是未通过,则该用户不具有当前操作的权限。可选地,该docker鉴权接口可以代理其他鉴权模块,为其他鉴权模块提供接口的方式实现鉴权操作。示例性地,该docker鉴权接口可以代理openstack的keystone,通过相关的接口将用户的标识输出至keystone,获取并输出keystone对该用户的标识的鉴权结果,以完成对该用户的标识的鉴权。可选地,该用户的标识包括用户的令牌。可选地,该docker鉴权接口可以以插件的形式加入docker中。
[0106]
docker用户管理接口:用于实现用户注册、注销和查询等功能,还可以让用户通过该docker用户管理接口在docker中注册并创建该用户的容器镜像信息库,也可以注销并删除该用户的容器镜像信息库。可选地,docker用户管理接口的功能实现方式可以包括:通过docker用户管理接口将用户的注册、注销或者查询请求的相关信息输出至keystone,获取并输出keystone对该用户的注册、注销或者查询请求的结果。可选地,docker用户管理接口还可以通过用户交互界面输出该注册、注销或者查询结果。
[0107]
docker pull接口:用于根据用户需求从私有registry或者公有registry下载容器镜像,其过程如下:通过docker鉴权接口对用户的标识进行鉴权;若鉴权结果是通过,且该用户的容器镜像信息库不包括该容器镜像的信息,从私有registry或者公有registry 下载该容器镜像至业务主机的本地存储空间中。此外,docker pull接口还可以将该容器镜像的信息加入该用户的容器镜像信息库。
[0108]
docker commit接口:用于将用户的容器转换为该用户的私有容器镜像,其过程如下:通过docker鉴权接口对用户的标识进行鉴权;若鉴权结果是通过,且该业务主机上存在用户的容器镜像信息库;将该容器转换成容器镜像并将该容器镜像的信息添加至该用户的容器镜像信息库。此外,docker commit接口还可以将该转换完成的容器镜像保存在业务主机的本地存储空间中。
[0109]
docker创建容器实例接口:用于根据用户需求创建容器,其过程如下:通过docker鉴权接口基于用户的标识进行鉴权;若鉴权结果是通过,判断所在业务主机上是否存在该用户的容器镜像信息库;若存在该用户的容器镜像信息库,在该用户的容器镜像信息库中查询所需要的容器镜像的信息;若该用户的容器镜像信息库中包括该容器镜像的信息,基于该容器镜像的信息获得该容器镜像;若该用户的容器镜像信息库中不包括该容器镜像的信息,调用docker pull接口从私有registry或者公有registry下载该容器镜像到该业务主机;基于该容器镜像创建容器,或者,将该下载的容器镜像的信息添加至该用户的容器镜像信息库,通过该用户的容器镜像信息库获得该容器镜像的信息,基于该容器镜像的信息获得该容器镜像,基于该容器镜像创建容器。
[0110]
docker push接口:用于将本地的容器镜像上传到私有registry或者公有registry,其过程如下:通过docker鉴权接口基于用户的标识进行鉴权;若鉴权结果是通过,在该用户的容器镜像信息库中查询该容器镜像的信息;若该用户的容器镜像信息库中包括该容器镜像的信息,将该容器镜像上传到该用户的私有registry或者公有registry。
[0111]
docker容器镜像信息查询接口:用于根据用户需求查询与该用户的标识关联的容器镜像的信息。可选地,docker容器镜像信息查询接口可以查询该用户的容器镜像信息库中包括的容器镜像的信息。可选地,docker容器镜像信息查询接口调用glance查询该用户的私有registry中包括的容器镜像的信息。可选地,上述容器镜像的信息是容器镜像的标识。可选地,docker容器镜像信息查询接口还可以通过用户交互界面输出查询结果。
[0112]
在基于openstack的docker容器管理系统中,可以实现以下容器相关操作中的一种或者多种:
[0113]
发放或者删除容器、启动容器、容器镜像管理等。其中容器镜像管理包括提交容器镜像、下载容器镜像、查看容器镜像等。
[0114]
参见图7,其示出了本发明提供的容器管理方法的流程图,以该方法在图6所示的基于openstack的docker容器管理系统中发放容器为例,该方法包括:
[0115]
步骤701、nova通过nova api接收到容器发放请求。
[0116]
其中,容器发放请求用于请求发放第三容器。该容器发放请求至少包括发起该容器发放请求的第一用户的标识和第三容器镜像的标识,第三容器镜像是发放第三容器所需要的容器镜像。
[0117]
可选地,该第一用户的标识可以包括第一用户的ID和/或第一用户的令牌;该第三容器镜像的标识是第三容器镜像的ID和/或第三容器镜像的名称。
[0118]
步骤702、nova调用keystone对第一用户的令牌进行鉴权;若鉴权结果是通过,执行步骤703。
[0119]
可选地,步骤702还包括:若鉴权结果是不通过,发放容器失败。
[0120]
步骤703、nova调用nova scheduler选择业务主机用以发放第三容器,并将该容器发放请求的相关信息传递给部署于该业务主机上的nova compute。
[0121]
步骤704、nova compute调用glance根据第三容器镜像的标识获得第三容器镜像的属性。
[0122]
其中,nova compute部署于该业务主机上,第三容器镜像的属性是公有或者私有。
[0123]
可选地,在步骤704中,还可以包括:nova compute调用glance根据第三容器镜像的ID获得第三容器镜像的名称。
[0124]
步骤705、nova compute调用docker,并将该容器发放请求的相关信息传递给docker。
[0125]
其中,该容器发放请求的相关信息包括但不限于:该容器发放请求、第一用户的标识和第三容器镜像的标识。
[0126]
步骤706、docker调用keystone对第一用户的令牌进行鉴权;若鉴权结果是通过,执行步骤707;若鉴权结果是不通过,发放容器失败。
[0127]
步骤707、docker调用docker用户管理接口查询该第一用户的容器镜像信息库是否存在;若第一用户的容器镜像信息库存在,执行步骤708;若第一用户的容器镜像信息库不存在,发放容器失败。
[0128]
在一种可选的实施方式中,步骤707还包括:若第一用户的容器镜像信息库不存在,发放容器失败,通过nova api将第一用户的容器镜像信息库不存在的信息反馈给第一用户,第一用户可以根据nova api的反馈结果,触发建立第一用户的容器镜像信息库,建立第一用户的容器镜像信息库的操作参见步骤501。
[0129]
步骤708、docker调用docker容器镜像信息查询接口在第一用户的容器镜像信息库中查询第三容器镜像的信息是否存在;若第三容器镜像的信息存在,执行步骤709,若第三容器镜像的信息不存在,执行步骤710。
[0130]
步骤709、docker获得第三容器镜像的信息,并基于第三容器镜像的信息获得第三容器镜像,执行步骤713。
[0131]
步骤710、docker判断第三容器镜像的属性;若第三容器镜像的属性是公有,执行步骤711;若第三容器镜像的属性是私有,执行步骤712。
[0132]
步骤711、docker调用docker pull接口从公有registry中下载第三容器镜像,执行步骤713。
[0133]
步骤712、docker调用docker pull接口从第一用户的私有registry中下载第三容器镜像,执行步骤713。
[0134]
步骤713、docker基于第三容器镜像创建并发放第三容器。
[0135]
在一种可能的实现方式中,步骤706-713是docker调用docker创建容器实例接口实现的。
[0136]
本发明查询用户的标识对应的容器镜像信息库,从该用户的容器镜像信息库中查询到容器镜像的标识后,再基于该容器镜像的标识获得容器镜像,进而基于该容器镜像发放容器。使得在容器发放的过程中,查询该用户的容器镜像信息库,而不查询其 他用户的容器镜像信息库,更不会获取其他用户的容器镜像,从而实现了容器发放过程中的用户数据的用户级隔离,保证了用户数据的安全性。
[0137]
此外,通过docker中的docker接口来与openstack系统中的各个模块传递指令、信息和/或数据,可以复用openstack系统中的用户注册、鉴权等功能,以保证docker容器管理系统下用户数据的安全性。
[0138]
参见图8,其示出了本发明提供的容器管理方法的流程图,以该方法在图6所示的基于openstack的docker容器管理系统中对提交容器镜像的过程进行管理为例,该方法包括:
[0139]
步骤801、nova通过nova api接收到容器镜像提交请求。
[0140]
其中,该容器镜像提交请求用于请求将第四容器转换为第四容器镜像并提交。
[0141]
其中,该发放容器的请求包括:
[0142]
发起容器镜像提交请求的第一用户的标识和docker容器实例的标识;第一用户的标识包括第一用户的ID和/或第一用户的令牌;docker容器实例的标识是第四容器所在的docker容器实例的标识;
[0143]
步骤802、nova调用keystone对第一用户的令牌进行鉴权;若鉴权结果是通过,执行步骤803。
[0144]
若鉴权结果是未通过,提交容器镜像失败。
[0145]
步骤803、nova根据docker容器实例的标识获得该docker容器实例所在的业务主机和第四容器的标识。
[0146]
步骤804、nova将容器镜像提交请求的相关信息传递给nova compute。
[0147]
其中,容器镜像提交请求的相关信息包括但不限于:该容器镜像提交请求、第一用户的标识和第四容器的标识。
[0148]
其中,nova compute部署于该业务主机上。
[0149]
步骤805、nova compute调用docker,并将该容器镜像提交请求的相关信息传递给docker。
[0150]
步骤806、docker调用keystone对第一用户的令牌进行鉴权;若鉴权结果是通过,执行步骤807;若鉴权结果不通过,提交容器镜像失败。
[0151]
步骤807、docker调用docker用户管理接口查询第一用户的容器镜像信息库是否存在;若第一用户的容器镜像信息库存在,执行步骤808;若第一用户的容器镜像信息库不存在,提交容器镜像失败。
[0152]
步骤808、docker调用docker commit接口将第四容器转换成第四容器镜像,并将第四容器镜像的信息加入第一用户的容器镜像信息库。
[0153]
步骤809、nova compute调用glance创建glance镜像。
[0154]
其中,该glance镜像是第四容器镜像在glance中的镜像,使得nova能够在将该glance镜像用于其他业务主机上的容器发放。
[0155]
可选地,在步骤809中还包括:建立glance镜像的标识与第四容器镜像的名称之间的映射关系。
[0156]
步骤810、docker调用docker push接口将第四容器镜像上传至第一用户的私有 registry。
[0157]
可选地,步骤810包括:docker调用docker push接口,docker push接口调用docker用户管理接口将第一用户的令牌输出至keystone进行鉴权,若鉴权结果是通过,则将第四容器镜像上传到该用户的私有registry。
[0158]
本发明实施例将用户的容器转换为容器镜像并将该容器镜像的标识加入该用户的容器镜像信息库,使得该用户的容器镜像信息库包括属于该用户的容器镜像的标识,可获得业务主机的存储空间中属于该用户的容器镜像,而不获得其他用户的容器镜像,从而实现了用户数据的用户级隔离,保证了用户数据的安全性。
[0159]
此外,通过docker中的docker接口来与openstack系统中的各个模块传递指令、信息和/或数据,可以复用openstack系统中的用户注册、鉴权等功能,以保证docker容器管理系统下用户数据的安全性。
[0160]
上文中结合图1至图8,详细描述了根据本发明实施例所提供的容器管理方法,下面将结合图9至图11描述根据本发明实施例所提供的容器管理的装置和设备。
[0161]
参见图9,其示出了本发明提供的一种容器管理装置900的框图,包括:获取模块910、查询模块920和发放模块930。
[0162]
获取模块910,用于获取容器发放请求。
[0163]
其中,该容器发放请求携带第一用户的标识和第一容器镜像的标识。
[0164]
查询模块920,用于查询第一用户的标识对应的容器镜像信息库,该容器镜像信息库用于存储第一用户的标识和第一容器镜像之间的映射关系。
[0165]
发放模块930,用于当容器镜像信息库中存在第一容器镜像的标识时,基于第一容器镜像的标识获取第一容器镜像,并根据第一容器镜像发放第一容器。
[0166]
在一种可选的实施方式中,发放模块930,用于基于第一容器镜像的标识获取第一容器镜像的信息;根据第一容器镜像的信息从本地存储空间中获取第一容器镜像,并根据第一容器镜像启动第一容器。
[0167]
在一种可选的实施方式中,查询模块920,用于基于第一用户的标识获取鉴权结果;当鉴权结果为通过时,查询第一用户的标识对应的容器镜像信息库。
[0168]
在一种可选的实施方式中,发放模块930,还用于当容器镜像信息库中不存在第一容器镜像的标识,且第一容器镜像的属性是私有时,从第一用户的私有容器镜像仓库中获取第一容器镜像;或者,当容器镜像信息库中不存在第一容器镜像的标识,且第一容器镜像的属性是公有时,从公有容器镜像仓库中获取第一容器镜像。
[0169]
在一种可选的实施方式中,容器管理装置900还包括:
[0170]
创建模块,用于基于第一用户的标识注册并创建第一用户的标识对应的容器镜像信息库,容器镜像信息库包括第一用户的标识关联的一个或者多个容器镜像的标识。
[0171]
在一种可选的实施方式中,参见图10,该容器管理装置900还包括:
[0172]
生成模块940,用于根据第一容器生成第二容器镜像,该第二容器镜像中包括第一用户的信息、应用和驱动中至少一种。
[0173]
添加模块950,用于将第二容器镜像的标识添加至第一用户的容器镜像信息库。
[0174]
上传模块960,用于将第二容器镜像上传至第一用户的私有容器镜像仓库。
[0175]
应理解的是,本发明实施例的容器管理装置900可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图4或图5中所示的容器管理方法时,该装置及其各个模块也可以为软件模块。
[0176]
根据本发明实施例的容器管理装置900可对应于执行本发明实施例中描述的方法,并且容器管理装置900中的各个单元的上述和其它操作和/或功能分别为了实现图4或图5中的各个方法中容器引擎所执行的相应流程,为了简洁,在此不再赘述。
[0177]
本发明查询用户的标识对应的容器镜像信息库,从该用户的容器镜像信息库中查询到容器镜像的标识后,再基于该容器镜像的标识获得容器镜像,进而基于该容器镜像发放容器。使得在容器发放的过程中,查询该用户的容器镜像信息库,而不查询其他用户的容器镜像信息库,更不会获取其他用户的容器镜像,从而实现了容器发放过程中的用户数据的用户级隔离,保证了用户数据的安全性。
[0178]
另外,将用户的容器转换为容器镜像,并将该容器镜像的标识加入该用户的容器镜像信息库,使得该用户的容器镜像信息库包括属于该用户的容器镜像的标识,从而实现了用户数据的用户级隔离,保证了用户数据的安全性。
[0179]
参见图11,其示出了本发明实施例提供的一种容器管理设备的结构示意图。该设备可能是服务器或者终端,如图11所示,该容器管理设备1100包括处理器1101、存储器1102、通信接口1103和总线1104、图形处理器1105。其中,处理器1101、存储器1102、通信接口1103、存储设备1105通过总线1104进行通信,也可以通过无线传输等其他手段实现通信。该存储器1102用于存储指令,该处理器1101用于执行该存储器1102存储的指令。该存储器1102存储程序代码,且处理器1101可以调用存储器1102中存储的程序代码执行以下操作:
[0180]
获取容器发放请求,该容器发放请求携带第一用户的标识和第一容器镜像的标识;
[0181]
查询第一用户的标识对应的容器镜像信息库,该容器镜像信息库用于存储第一用户的标识和第一容器镜像之间的映射关系;
[0182]
当容器镜像信息库中存在第一容器镜像的标识时,基于第一容器镜像的标识获取第一容器镜像,并根据第一容器镜像发放第一容器。
[0183]
应理解的是,在本发明实施例中,该处理器1101可以是CPU,该处理器1101还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器1101可以是支持ARM架构的处理器。
[0184]
该存储器1102可以包括只读存储器和随机存取存储器,并向处理器1101提供指令和数据。存储器1102还可以包括非易失性随机存取存储器。例如,存储器1102还可以存储设备类型的信息。
[0185]
该存储器1102可以是易失性存储器或非易失性存储器,或可包括易失性和非易失 性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
[0186]
该总线1104除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1104。
[0187]
应理解,根据本发明实施例的容器管理设备1100可对应于本发明实施例中的图9或图10所示的容器管理装置900,并可以对应于执行根据本发明实施例中图4或图5所示方法中的容器引擎为执行主体的操作步骤,并且容器引擎中的各个模块的上述和其它操作和/或功能分别为了实现图4或图5中的各个方法的相应流程,为了简洁,在此不再赘述。
[0188]
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算系统的处理器执行时,使得计算系统能够执行图4、5、7或者8其中任一项提供的容器管理方法。
[0189]
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行进行图4、5、7或者8其中任一项提供的容器管理方法的指令。
[0190]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在装置上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴光缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是装置能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(Digital Video Disk,DVD)等),或者半导体介质(如固态硬盘等)。
[0191]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0192]
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

权利要求书

[权利要求 1]
一种容器管理方法,其特征在于,所述方法包括: 获取容器发放请求,所述容器发放请求携带第一用户的标识和第一容器镜像的标识; 查询所述第一用户的标识对应的容器镜像信息库,所述容器镜像信息库用于存储所述第一用户的标识和所述第一容器镜像之间的映射关系; 当所述容器镜像信息库中存在所述第一容器镜像的标识时,基于所述第一容器镜像的标识获取所述第一容器镜像,并根据所述第一容器镜像发放第一容器。
[权利要求 2]
根据权利要求1所述的方法,其特征在于,在所述获取容器发放请求之前,所述方法还包括: 基于所述第一用户的标识注册并创建所述第一用户的标识对应的容器镜像信息库,所述容器镜像信息库包括所述第一用户的标识关联的一个或者多个容器镜像的标识。
[权利要求 3]
根据权利要求1或2所述的方法,其特征在于,所述基于所述第一容器镜像的标识获取所述第一容器镜像,并根据所述第一容器镜像发放第一容器,包括: 基于所述第一容器镜像的标识获取所述第一容器镜像的信息; 根据所述第一容器镜像的信息从本地存储空间中获取所述第一容器镜像,并根据所述第一容器镜像启动第一容器。
[权利要求 4]
根据权利要求1至3中任一所述的方法,其特征在于,所述方法还包括: 当所述容器镜像信息库中不存在所述第一容器镜像的标识,且所述第一容器镜像的属性为私有时,从所述第一用户的私有容器镜像仓库中获取所述第一容器镜像;或者, 当所述容器镜像信息库中不存在所述第一容器镜像的标识,且所述第一容器镜像的属性为公有时,从公有容器镜像仓库中获取所述第一容器镜像。
[权利要求 5]
根据权利要求1至4中任一所述的方法,其特征在于,在所述基于所述第一容器镜像的标识获取所述第一容器镜像,并根据所述第一容器镜像发放第一容器之后,所述方法还包括: 根据所述第一容器生成第二容器镜像,所述第二容器镜像中包括所述第一用户的信息、应用和驱动中至少一种; 将所述第二容器镜像的标识添加至所述第一用户的容器镜像信息库; 将所述第二容器镜像上传至所述第一用户的私有容器镜像仓库。
[权利要求 6]
根据权利要求1至5中任一所述的方法,其特征在于,所述查询所述第一用户的标识对应的容器镜像信息库,包括: 基于所述第一用户的标识获取鉴权结果,当所述鉴权结果为通过时,查询所述第一用户的标识对应的容器镜像信息库。
[权利要求 7]
一种容器管理装置,其特征在于,所述装置包括: 获取模块,用于获取容器发放请求,所述容器发放请求携带第一用户的标识和第一容器镜像的标识; 查询模块,用于查询所述第一用户的标识对应的容器镜像信息库,所述容器镜像信息库用于存储所述第一用户的标识和所述第一容器镜像之间的映射关系; 发放模块,用于当所述容器镜像信息库中存在所述第一容器镜像的标识时,基于所述第一容器镜像的标识获取所述第一容器镜像,并根据所述第一容器镜像发放第一容器。
[权利要求 8]
根据权利要求7所述的装置,其特征在于,所述装置还包括: 创建模块,用于基于所述第一用户的标识注册并创建所述第一用户的标识对应的容器镜像信息库,所述容器镜像信息库包括所述第一用户的标识关联的一个或者多个容器镜像的标识。
[权利要求 9]
根据权利要求7或8所述的装置,其特征在于,所述发放模块,用于基于所述第一容器镜像的标识获取所述第一容器镜像的信息;根据所述第一容器镜像的信息从本地存储空间中获取所述第一容器镜像,并根据所述第一容器镜像启动第一容器。
[权利要求 10]
根据权利要求7至9中任一所述的装置,其特征在于,所述发放模块,还用于当所述容器镜像信息库中不存在所述第一容器镜像的标识,且所述第一容器镜像的属性为私有时,从所述第一用户的私有容器镜像仓库中获取所述第一容器镜像;或者,当所述容器镜像信息库中不存在所述第一容器镜像的标识,且所述第一容器镜像的属性为公有时,从公有容器镜像仓库中获取所述第一容器镜像。
[权利要求 11]
根据权利要求7至10中任一所述的装置,其特征在于,所述装置还包括: 生成模块,用于根据所述第一容器生成第二容器镜像,所述第二容器镜像中包括所述第一用户的信息、应用和驱动中至少一种; 添加模块,用于将所述第二容器镜像的标识添加至所述第一用户的容器镜像信息库; 上传模块,用于将所述第二容器镜像上传至所述第一用户的私有容器镜像仓库。
[权利要求 12]
根据权利要求7至11中任一所述的装置,其特征在于,所述查询模块,用于基于所述第一用户的标识获取鉴权结果,当所述鉴权结果为通过时,查询所述第一用户的标识对应的容器镜像信息库。
[权利要求 13]
一种容器管理设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至6中任一所述的容器管理方法。

附图

[ 图 1]   [根据细则26改正 03.07.2019] 
[ 图 2]   [根据细则26改正 03.07.2019] 
[ 图 3]   [根据细则26改正 03.07.2019] 
[ 图 4]   [根据细则26改正 03.07.2019] 
[ 图 5]   [根据细则26改正 03.07.2019] 
[ 图 6]   [根据细则26改正 03.07.2019] 
[ 图 7]   [根据细则26改正 03.07.2019] 
[ 图 8]   [根据细则26改正 03.07.2019] 
[ 图 9]   [根据细则26改正 03.07.2019] 
[ 图 10]   [根据细则26改正 03.07.2019] 
[ 图 11]   [根据细则26改正 03.07.2019]