容器镜像处理方法、电子设备、存储介质及系统与流程

文档序号:22236605发布日期:2020-09-15 19:45阅读:158来源:国知局
容器镜像处理方法、电子设备、存储介质及系统与流程

本发明实施例涉及容器镜像技术,尤其涉及一种容器镜像处理方法、电子设备、存储介质及系统。



背景技术:

随着互联网技术的不断发展,容器技术以及容器镜像技术得到应用。目前容器及容器镜像管理和使用方案是运行在同一种系统架构下的。对于存在多种系统架构(又称异构)需要使用容器镜像的情况,缺乏一种高效的异构容器镜像管理方案。



技术实现要素:

本发明提供一种容器镜像处理方法、电子设备、存储介质及系统,以实现提高异构场景中容器镜像管理效率。

第一方面,本发明实施例提供了一种容器镜像处理方法,应用于服务器端,包括:

接收用户输入的容器镜像参数,容器镜像参数包括容器适用的目标架构;

根据容器镜像参数生成目标架构适配的dockerfile文件;

服务器端包含多个虚拟机,调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境;

响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输。

第二方面,本发明实施例还提供了一种容器镜像处理方法,应用于客户端,包括:

连接服务器端,服务器端存储有多种架构的容器镜像;

向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,传输操作包含元数据,目标容器镜像为目标架构下的容器镜像。

第三方面,本发明实施例还提供了一种电子设备,电子设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如本申请实施例所示的容器镜像处理方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本申请实施例所示的容器镜像处理方法。

第五方面,本发明实施例还提供了一种容器镜像处理系统,包括:服务器端和客户端;

服务器端接收用户输入的容器镜像参数,容器镜像参数包括容器适用的目标架构;根据容器镜像参数生成目标架构适配的dockerfile文件;服务器端包含多个虚拟机,调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境;

客户端连接服务器端,服务器端存储有多种架构的容器镜像;向服务器端发起容器镜像传输操作,传输操作包含元数据;

服务器端响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输,目标容器镜像为目标架构下的容器镜像。

本申请实施例提供的容器镜像处理方案,通过设置多个虚拟机实现异构系统容器镜像的管理。通过接收用户输入的目标架构下的容器镜像参数,生成dockerfile文件,并在虚拟机中根据dockerfile文件构建目标容器镜像,实现通过虚拟机提供的容器镜像的编译环境实现容器镜像的编辑功能。同时,能够响应客户端发起的容器镜像传输操作,实现为客户端提供与客户端架构类型匹配的容器镜像的功能,提高异构场景容器镜像管理效率。

附图说明

图1是本发明实施例提供的容器镜像处理架构的示意图;

图2是本发明实施例一中的容器镜像处理方法的流程图;

图3是本发明实施例二中的容器镜像处理方法的流程图;

图4是本发明实施例三中的容器镜像处理方法的流程图;

图5是本发明实施例五中的容器镜像处理装置的结构示意图;

图6是本发明实施例六中的容器镜像处理装置的结构示意图;

图7是本发明实施例七中的电子设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

图1为本申请实施例提供的一种容器镜像处理架构的示意图,包括服务器端101和多个分别部署有不同系统架构的客户端102。不同系统架构包括x86、arm64或armv7等。服务器端101中维护有多个虚拟机,虚拟机包含某个系统架构的容器镜像的编译环境。可以针对多个系统架构配置多个虚拟机,每个系统架构配置一个或多个虚拟机。用户可登录到服务器端101,输入容器镜像参数,容器镜像参数包括目标架构和用于构建容器镜像的配置信息。用户登录到服务器端101后,可以选择目标架构,输入用于构建容器镜像的配置信息,服务器端101根据配置信息生成目标架构适配的dockerfile文件,然后在目标架构对应的虚拟机中根据该dockerfile文件生成目标架构的容器镜像。实现在服务器端101中进行容器镜像的编辑功能。同时服务器端101通过标签tag等元数据可对不同架构的容器镜像进行标记,用于存储和管理不同架构的不同容器镜像。客户端102连接服务器端101后,可以与服务器端101进行容器镜像的传输操作,传输操作包括拉取操作或上传操作。服务器端101可以被视为一个容器镜像仓库,为客户端102提供容器镜像的拉取功能。同时,客户端102还可以向服务器端101发送容器镜像,以扩充容器镜像仓库中的容器镜像。服务器端101通过元数据可准确的标记不同架构不同操作系统的容器镜像,实现管理异构场景中属于不同架构的容器镜像的效果。下面通过实施例对上述方案进行具体说明:

实施例一

图2为本申请实施例提供的容器镜像处理方法的流程图,本实施例可适用于服务器端和客户端之间进行容器镜像拉取、上传以及服务器端提供容器镜像编辑的情况,该方法可以由服务器端来执行,具体包括如下步骤:

步骤110、接收用户输入的容器镜像参数,容器镜像参数包括容器适用的目标架构。

用户可以根据服务器端的网络地址和端口访问服务器端。可选的,用户可以使用终端向服务器端发送容器镜像参数,此时服务器端接收用户通过终端发送的容器镜像参数。可选的,用户也可以登录服务器端,在服务器端中输入容器镜像参数。可选的,用户还可以通过客户端访问服务器端。

容器镜像参数包括目标架构和用于构建容器镜像的配置信息,容器镜像参数用于构建目标架构下符合配置信息的容器镜像。在异构场景中,服务器端需要分别维护不同架构下的容器镜像,因此容器镜像参数除了通用的在构建容器镜像时所需的配置信息外,还需要明确目标架构,目标架构用于表示容器镜像所使用的架构。架构包括x86、armv7、arm64等。

步骤120、根据容器镜像参数生成目标架构适配的dockerfile文件。

在接收到容器镜像参数后,根据目标架构确定目标架构适配的dockerfile文件格式。使用配置信息生成目标架构适配的dockerfile文件。dockerfile文件是由命令语句组成,并且支持以“#”开头的注释行的文件。dockerfile文件的内容可以包括:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。可以使用配置信息中包含的基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令生成dockerfile文件。

步骤130、服务器端包含多个虚拟机,调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境。

每种架构需要独立的系统环境支撑,虚拟机能够提供不同架构的编译环境。可以预先为每种架构构建一个或多个虚拟机,例如在步骤110之前预先为每种架构构建一个或多个虚拟机。随着虚拟机数量的增加,能够更好的满足多用户并行响应需求。服务器端可以对每种架构下构建的虚拟机进行管理。比如,根据虚拟机当前负载情况、虚拟机的计算能力等管理信息进行虚拟机分配。

根据目标架构可以确定目标架构下已构建的多个虚拟机。可以随机的从目标架构下构建的多个虚拟机中选择一个虚拟机作为目标虚拟机。也可以根据管理信息查找按照一定选择规则确定目标虚拟机。选择规则可以为包括但不限于:使用当前计算能力最强的虚拟机作为目标虚拟机或者优先使用已运行的虚拟机作为目标虚拟机等。

在目标虚拟机中,使用步骤120中生成的dockerfile文件构建目标容器镜像,得到目标架构的目标容器镜像。用户通过访问服务器能够通过生成新的dockerfile文件构建新的目标容器镜像。也可以,读取已生成的dockerfile文件,通过访问服务器对dockerfile文件进行修改,然后在目标虚拟机中使用修改过后的dockerfile文件构建修改的目标容器镜像。通过管理运行有不同架构的容器镜像的编译环境的虚拟机,实现多种架构容器镜像的创建及修改功能。

步骤140、响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输。

传输操作包括拉取操作或上传操作。拉取操作可以理解为:客户端从服务器端拉取与客户端架构相同的某个容器镜像的操作。上传操作可以理解为:客户端将客户端本地的某个容器镜像发送至服务器端的操作。当客户端通过上传操作将容器镜像上传至服务器后,服务器可以对该容器镜像进行管理。

在一种实现方式中,若传输操作为拉取操作,则步骤140可通过下述方式进行实施:

响应于客户端发送的拉取操作,拉取操作中携带元数据,元数据包括目标架构或镜像标识;根据元数据确定目标容器镜像;将目标容器镜像反馈至客户端。

客户端可以通过docker命令,向服务器端发起拉取操作。该docker命令中,携带有元数据。元数据包括客户端适用的目标架构、请求的目标容器镜像所具有的镜像标识。镜像标识用于唯一标识容器镜像。镜像标识可以为目标容器镜像的名称,该名称中可以包含有容器镜像版本、适用的操作系统等。元数据还包括:基础镜像信息、构建时间信息或镜像大小信息等。上述元数据均可用于更加准确的描述和定位目标容器镜像。根据元数据包含的信息查找目标架构下,查找具有相应镜像标识的容器镜像作为目标容器镜像。

例如服务器存储有x86架构下windows系统的多种应用的容器镜像以及linux系统的多种应用的容器镜像。元数据中的目标架构为x86,系统版本为win10,应用版本为v1.0,则可以根据元数据记载的目标架构以及镜像标识准确的在服务器端中定位目标容器镜像。

在另一种实现方式中,若传输操作为上传操作,则步骤140可通过下述方式进行实施:

接收客户端发送的上传操作,上传操作中携带元数据和目标容器镜像,元数据包括目标架构或镜像标识;存储目标容器镜像,建立元数据与目标容器镜像的存储地址的索引关系。

客户端可以通过docker命令,向服务器端发起上传操作。该docker命令中,携带有元数据,元数据包括目标架构或镜像标识。服务器预先为不同的架构配置有虚拟机,为每个虚拟机分配存储空间。该存储空间用于存储虚拟机运行所需的系统数据。该存储空间还用于存储与该虚拟机具有相同架构的目标容器镜像。例如,服务器为某虚拟机分配1tb的存储空间,该1tb的存储空间中不仅存储有用于虚拟机运行所需的系统数据,还包括目标容器镜像。存储空间可以被划分为多个存储区域,分别用于存储不同类型的数据。例如划分为两个存储区域,一个存储区域用于存储系统数据,另一个存储区域用于存储目标容器镜像。

在存储空间中存储目标容器镜像,获取目标容器镜像的存储地址。建立元数据与目标容器镜像的存储地址的索引关系。示例性的,索引关系可以为键值对,(元数据a,目标容器镜像a的存储地址)。根据索引关系中记录的容器镜像的存储地址,可以在存储空间中查找到与元数据描述内容相符的目标容器镜像,实现在虚拟机中根据元数据快速准确的查找目标容器镜像。

需要说明的是,步骤140可以在步骤130之后运行,也可以在步骤110之前运行。

当步骤140在步骤130之后执行时,适用于下述场景:用户在服务器端中生成或修改了某个目标容器镜像,之后,服务器端响应客户端的容器镜像传输操作,例如目标容器镜像的拉取操作,将目标容器镜像发送至客户端。实现服务器端为客户端提供不同架构下的容器镜像的拉取操作。

当步骤140还可以在步骤110之前执行,适用于下述场景:客户端连接服务器端后,向服务器端进行容器镜像的传输操作,例如将目标容器镜像上传至服务器端的操作。实现客户端为服务器端扩充容器镜像的效果。当客户端将目标容器镜像发送至服务器端后,用户可以访问服务器端对接收到的目标容器镜像进行修改等管理方式。

服务器端为了能够更加高效准确的管理不同架构下的容器镜像,通过容器镜像的元数据记载容器镜像的架构信息、版本信息等。通过元数据记载的内容对不同架构下的容器镜像进行分类及存储。

进一步的,在步骤140之前,还包括:

接收客户端发送的登录信息;根据登录信息进行校验;

相应的,响应于客户端触发的容器镜像传输操作,可通过下述方式进行实施:

若校验成功,响应客户端触发的容器镜像传输操作。

登录信息包括用户名及密码。服务器端在与客户端建立连接时,需要对客户端的身份进行验证。对登录信息进行校验能够确定客户端身份的合法性。可以为每个客户端维护一一对应的密码。也可以根据登录信息确定客户端的操作权限,例如客户端仅可以进行拉取操作或上传操作中的一种操作,或者客户端可以进行拉取操作或上传操作中的任意一种操作等。

对客户端发送的登录信息进行校验,能够确定客户端是否有权限访问服务器,以及是否具有容器镜像下拉操作或上传操作的权限,提高安全性。

可选的,客户端可以预先向服务器端注册自身的目标架构、网络地址以及客户端标识等,进而服务器端根据接收到的传输操作的源地址,即客户端的网络地址,即可获知与客户端进行传输的目标容器镜像适用的架构,且无需每次连接均进行校验,在依次校验成功后的有效期内,基于源地址已通过身份验证,进而减少身份验证环节,直接进行目标容器镜像的传输,提高目标容器镜像的传输效率。

本申请实施例提供的容器镜像处理方法,通过设置多个虚拟机实现异构系统容器镜像的管理。通过接收用户输入的目标架构下的容器镜像参数,生成dockerfile文件,并在虚拟机中根据dockerfile文件构建目标容器镜像,实现通过虚拟机提供的容器镜像的编译环境实现容器镜像的编辑功能。同时,能够响应客户端发起的容器镜像传输操作,实现为客户端提供与客户端架构类型匹配的容器镜像的功能,提高异构场景容器镜像管理效率。

实施例二

图3本申请实施例提供的容器镜像处理方法的流程图,该方法应用于服务器端,作为对上述实施例的进一步说明,服务器端可为用户提供可视化界面,使用户更加便捷的输入容器镜像参数,具体包括如下步骤:

步骤210、在可视化界面中输出容器镜像参数的选项,接收用户根据选项选择的目标架构以及第一配置信息。

其中,第一配置信息包括:依赖的基础容器镜像或容器镜像版本中的一个或多个的组合。

用户可以根据服务器端的网络地址,使用终端远程访问服务器端的容器镜像参数设置界面,也可以在服务器端上进行身份验证后进入容器镜像参数设置界面。在容器镜像参数设置界面中,可以为用户提供容器镜像参数的设置。第一配置信息的选取方式为,针对每个第一配置信息为用户提供可选择的多个选项,每个选项为第一容器镜像的一种可选内容。

步骤220、在可视化界面中接收用户输入的第二配置信息。

其中,第二配置信息包括:容器镜像描述、容器镜像名称、容器镜像依赖的软件包、容器运行命令或容器执行脚本中的一个或多个的组合。

可视化界面除了步骤210提供的可选项之外,还需要用户输入第二配置信息。第二配置信息可以为文本格式,用户根据容器镜像的特征输入相应的内容。

步骤230、根据目标架构、第一配置信息和第二配置信息生成目标架构适配的dockerfile文件。

服务器端在获取到目标架构、第一配置信息和第二配置信息后,根据用户选择的目标架构,确定与目标架构适配的dockerfile文件格式。根据第一配置信息和第二配置信息生成符合dockerfile文件格式规范的dockerfile文件。

若用户需要在多个架构中分别生成容器镜像,则可通过可视化界面分别输入每个架构适配的dockerfile文件所需要的第一配置信息和第二配置信息,进而调用不同架构对应的虚拟机生成相应的目标容器镜像。可视化界面中可显示多个窗口,分别用于用户配置不同架构的容器镜像参数。示例性的,可视化界面显示两个窗口,用户可在一个窗口中设置适用于x86架构下的容器镜像参数。其中,适用于x86架构下的容器镜像参数包括:适用于x86架构的第一配置信息和第二配置信息。用户还可在另一个窗口中设置适用于armv7架构下的容器镜像参数。其中,适用于armv7架构下的容器镜像参数包括:适用于armv7架构的第一配置信息和第二配置信息。

步骤240、服务器端包含多个虚拟机,调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境。

步骤250、响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输。

本申请实施例提供的容器镜像处理方法,能够在服务器端提供可视化界面,用户在可视化界面中可以选取某个选项以确定目标架构和第一配置信息,通过输入命令或信息以确定第二配置信息,避免用户以编写代码的方式进行容器镜像参数的输入,使用户能够快速输入容器参数,提高易用性。

实施例三

图4为本申请实施例提供的容器镜像处理方法的流程图,本实施例可适用于服务器端和客户端之间进行容器镜像拉取、上传以及服务器端提供容器镜像编辑的情况,该方法可以由客户端来执行,具体包括如下步骤:

步骤310、连接服务器端,服务器端存储有多种架构的容器镜像。

客户端在于服务器端进行容器镜像传输之前,需要与服务器端建立可用的连接。

可选的,步骤310可实施为:根据配置文件包含的服务器端地址及登录信息连接服务器端。若连接成功,则执行步骤320。

客户端中维护有配置文件。配置文件包含客户端在连接服务器端时所需的信息,如服务器端地址以及登录信息。客户端根据服务器端地址确定报文的目标地址,同时在报文中携带登录信息,以便服务器端对登录信息进行身份验证。客户端根据服务器端反馈的验证结果确定是否连接成功。

步骤320、向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,传输操作包含元数据,目标容器镜像为目标架构下的容器镜像。

在与服务器建立连接后,客户端可以向服务器端发起传输操作。传输操作包括拉取操作和上传操作。客户端可以预先向服务器端注册自身的目标架构、网络地址以及客户端标识等,进而服务器端根据接收到的传输操作的源地址,即客户端的网络地址,即可获知与客户端进行传输的目标容器镜像适用的架构,且无需每次连接均进行校验,在依次校验成功后的有效期内,基于源地址已通过身份验证,进而减少身份验证环节,直接进行目标容器镜像的传输,提高目标容器镜像的传输效率。

在一种实现方式中,若传输操作为拉取操作,则步骤320可通过下述方式进行实施:获取客户端的目标架构;向服务器端发起拉取操作,拉取操作中携带目标容器镜像的元数据,元数据包括目标架构或镜像标识;接收服务器端反馈的目标容器镜像。元数据可以通过tag进行记载。

配置文件还包括客户端采用的架构,即目标架构。通过读取配置文件可获取客户端的目标机构。配置文件还可以记载客户端中需要传输的容器镜像的元数据。

在另一种实现方式中,若传输操作为上传操作,则步骤320可通过下述方式进行实施:根据本地的目标容器镜像确定元数据,元数据包括:目标架构或镜像标识;向服务器端发起上传操作,将元数据和本地的目标容器镜像发送至服务器端。

本申请实施例提供的容器镜像处理方法,客户端可以在连接服务器端后,与服务器端进行容器镜像的传输操作。由于服务器端存储有不同架构的容器镜像,因此客户端可以根据自身的目标架构,从服务器端拉取目标架构中的目标容器镜像;同时也可以将本地的目标容器镜像以及目标容器镜像的元数据上传至服务器,实现由客户端为服务器端扩充容器镜像的功能。在异构场景中,多个客户端可以分别部署不同的架构,在与服务器进行容器镜像传输时,通过元数据包含的目标架构、版本等标识信息,能够在服务器中准确的确定目标容器镜像,实现异构场景中客户端快速拉取和上传容器镜像。

实施例四

本申请实施例提供了一种容器镜像处理系统,包括:服务器端和客户端;

服务器端接收用户输入的容器镜像参数,容器镜像参数包括容器适用的目标架构;根据容器镜像参数生成目标架构适配的dockerfile文件;服务器端包含多个虚拟机,调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境;

客户端连接服务器端,服务器端存储有多种架构的容器镜像;向服务器端发起容器镜像传输操作,传输操作包含元数据;

服务器端响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输,目标容器镜像为目标架构下的容器镜像。

在一种实现方式中,通过下述方式完成客户端向服务器端进行目标容器镜像的上传操作:

客户端根据配置文件包含的服务器端地址及登录信息连接服务器端;

服务器端根据登录信息对客户端进行身份验证,并反馈身份验证结果。

客户端在接收到身份验证成功消息时,根据本地的目标容器镜像确定元数据,元数据包括:目标架构或镜像标识;向服务器端发起上传操作,将元数据和本地的目标容器镜像发送至服务器;

服务器端接收客户端发送的上传操作,上传操作中携带元数据和目标容器镜像,元数据包括目标架构或镜像标识;存储目标容器镜像,建立元数据与目标容器的存储地址的索引关系。

在一种实现方式中,通过下述方式完成客户端向服务器端进行目标容器镜像的拉取操作:

客户端根据配置文件包含的服务器端地址及登录信息连接服务器端;

服务器端根据登录信息对客户端进行身份验证,并反馈身份验证结果。

客户端在接收到身份验证成功消息时,获取客户端的目标架构;向服务器端发起拉取操作,拉取操作中携带目标容器镜像的元数据,元数据包括目标架构或镜像标识;接收服务器端反馈的目标容器镜像。

服务器端响应于客户端发送的拉取操作,拉取操作中携带元数据,元数据包括目标架构或镜像标识;根据元数据确定目标容器镜像;将目标容器镜像反馈至客户端。

在一种实现方式中,通过下述方式完成用户通过客户端访问服务器端,并进行目标容器镜像的编辑:

客户端根据配置文件包含的服务器端地址及登录信息连接服务器端;

服务器端根据登录信息对客户端进行身份验证,并反馈身份验证结果。

客户端在接收到身份验证成功消息时,为用户展示服务器端提供的可视化界面;

服务器端在可视化界面中输出容器镜像参数的选项,接收用户根据选项选择的第一配置信息,第一配置信息包括:容器适用的目标架构、依赖的基础容器镜像或容器镜像版本中的一个或多个的组合;在可视化界面中接收用户输入的第二配置信息,第二配置信息包括:容器镜像描述、容器镜像名称、容器镜像依赖的软件包、容器运行命令或容器执行脚本中的一个或多个的组合;

服务器端根据第一配置信息和第二配置信息生成目标架构适配的dockerfile文件;调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像。

进一步的,可以预先将本申请实施例提供的服务器端和客户端的逻辑部署到不同的硬件设备,使得硬件设备具备服务器端或客户端的功能以执行上述方法。

在一种使用场景中,通过下述方式实现,在服务器端中构建一个nginx应用容器镜像(即目标容器镜像),在不同架构的客户端中拉取构建的容器镜像并创建应用:

1)准备同一个网络环境中的两台x86架构设备(或虚拟机)和一台arm架构设备(或虚拟机)。两台x86架构设备分别称为“x86设备1”和“x86设备2”。arm架构设备称为“arm架设备1”。将“x86设备1”作为本申请的服务器端,“x86设备2”和“arm架设备1”作为本申请的两个客户端。

2)将所有设备中分别部署相应架构的操作系统和必须的docker容器环境;

3)在“x86设备1”中部署上述实施例中应用于服务器端的方案。

4)在“x86设备2”和“arm架设备1”中部署上述实施例中应用于客户端的方案。

5)分别在“x86设备2”和“arm架设备1”中编辑配置文件。配置文件包括服务器端连接地址、登录信息秘钥等信息,使客户端能向服务器端将自己架构信息、ip地址、客户端名称等信息注册。

6)通过浏览器输入服务器端地址,输入用户名及密码登录服务器端。在服务器端提供的可视化的构建容器界面中,选择容器镜像的架构、选择最新版本的基础容器镜像ubuntu等第一配置信息;输入容器镜像描述nginx-test、容器镜像名称nginx-test、容器镜像依赖的软件包nginx、容器运行命令、容器执行脚本等第二配置信息。服务器端根据选择或输入的容器镜像参数分别生成x86架构适配的dockerfile文件和arm架构适配的dockerfile文件。

7)服务器端可以为用户提供编译界面,由用户手动构建相应架构的nginx容器镜像。也可以自动的根据获取的容器镜像参数生成相应架构的nginx容器镜像。

8)“x86设备2”或“arm架设备1”可以通过docker命令拉取构建的最新版本的nginx容器镜像。

9)“x86设备2”或“arm架设备1”可以使用拉取到的nginx容器镜像,创建nginx容器。测试异构环境下创建好的nginx容器。

实施例五

图5为本申请实施例四提供的容器镜像处理装置的结构示意图,该装置应用于服务器端,该装置包括:容器镜像参数接收模块410、文件生成模块420、容器镜像构建模块430以及容器镜像传输模块440。

容器镜像参数接收模块410,用于接收用户输入的容器镜像参数,容器镜像参数包括容器适用的目标架构;

文件生成模块420,用于根据容器镜像参数生成目标架构适配的dockerfile文件;

容器镜像构建模块430,用于调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境,服务器端包含多个虚拟机;

容器镜像传输模块440,用于响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输。

进一步的,容器镜像参数接收模块410用于:

在可视化界面中输出容器镜像参数的选项,接收用户根据选项选择的第一配置信息,第一配置信息包括:容器适用的目标架构、依赖的基础容器镜像或容器镜像版本中的一个或多个的组合;

在可视化界面中接收用户输入的第二配置信息,第二配置信息包括:容器镜像描述、容器镜像名称、容器镜像依赖的软件包、容器运行命令或容器执行脚本中的一个或多个的组合;

相应的,根据容器镜像参数生成目标架构适配的dockerfile文件,包括:

根据第一配置信息和第二配置信息生成目标架构适配的dockerfile文件。

进一步的,容器镜像传输模块440用于:

响应于客户端发送的拉取操作,拉取操作中携带元数据,元数据包括目标架构或镜像标识;

根据元数据确定目标容器镜像;

将目标容器镜像反馈至客户端。

进一步的,容器镜像传输模块440用于:

接收客户端发送的上传操作,上传操作中携带元数据和目标容器镜像,元数据包括目标架构或镜像标识;

存储目标容器镜像,建立元数据与目标容器的存储地址的索引关系。

进一步的,容器镜像传输模块440用于:接收客户端发送的登录信息;

根据登录信息进行校验;

若校验成功,响应客户端触发的容器镜像传输操作。

本申请实施例提供的容器镜像处理装置,通过设置多个虚拟机实现异构系统容器镜像的管理。通过容器镜像参数接收模块410接收用户输入的目标架构下的容器镜像参数,文件生成模块420生成dockerfile文件,容器镜像构建模块430在虚拟机中根据dockerfile文件构建目标容器镜像,实现通过虚拟机提供的容器镜像的编译环境实现容器镜像的编辑功能。同时,容器镜像传输模块440能够响应客户端发起的容器镜像传输操作,实现为客户端提供与客户端架构类型匹配的容器镜像的功能,提高异构场景容器镜像管理效率。

实施例六

图6为本申请实施例四提供的容器镜像处理装置的结构示意图,该装置应用于客户端,该装置包括:连接模块510和目标容器镜像传输模块520。

连接模块510,用于连接服务器端,服务器端存储有多种架构的容器镜像;

目标容器镜像传输模块520,用于向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,传输操作包含元数据,目标容器镜像为目标架构下的容器镜像。

进一步的,目标容器镜像传输模块520用于:

获取客户端的目标架构;

向服务器端发起拉取操作,拉取操作中携带目标容器镜像的元数据,元数据包括目标架构或镜像标识;

接收服务器端反馈的目标容器镜像。

进一步的,目标容器镜像传输模块520用于:

根据本地的目标容器镜像确定元数据,元数据包括:目标架构或镜像标识;

向服务器端发起上传操作,将元数据和本地的目标容器镜像发送至服务器端。

进一步的,连接模块510用于:

根据配置文件包含的服务器端地址及登录信息连接服务器端;

相应的,向服务器端发起容器镜像传输操作,包括:

若连接成功,向服务器端发起容器镜像传输操作。

本申请实施例提供的容器镜像处理装置,客户端可以在连接模块510连接服务器端后,目标容器镜像传输模块520与服务器端进行容器镜像的传输操作。由于服务器端存储有不同架构的容器镜像,因此客户端可以根据自身的目标架构,从服务器端拉取目标架构中的目标容器镜像;同时也可以将本地的目标容器镜像以及目标容器镜像的元数据上传至服务器,实现由客户端为服务器端扩充容器镜像的功能。在异构场景中,多个客户端可以分别部署不同的架构,在于服务器进行容器镜像传输时,通过元数据包含的目标架构、版本等标识信息,能够在服务器中准确的确定目标容器镜像,实现异构场景中客户端快速拉取和上传容器镜像。

值得注意的是,上述容器镜像处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

实施例七

图7为本发明实施例六提供的一种电子设备的结构示意图,如图7所示,该电子设备包括处理器60和存储器61,还可以包括输入装置62和输出装置63;电子设备中处理器60的数量可以是一个或多个,图7中以一个处理器60为例;电子设备中的处理器60、存储器61、输入装置62和输出装置63可以通过总线或其他方式连接,图7中以通过总线连接为例。

存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的容器镜像处理方法对应的程序指令/模块(例如,容器镜像参数接收模块410、文件生成模块420、容器镜像构建模块430以及容器镜像传输模块440)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现应用于服务器端的容器镜像处理方法,该方法包括:

接收用户输入的容器镜像参数,容器镜像参数包括容器适用的目标架构;

根据容器镜像参数生成目标架构适配的dockerfile文件;

服务器端包含多个虚拟机,调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境;

响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输。

进一步的,接收用户输入的容器镜像参数,包括:

在可视化界面中输出容器镜像参数的选项,接收用户根据选项选择的第一配置信息,第一配置信息包括:容器适用的目标架构、依赖的基础容器镜像或容器镜像版本中的一个或多个的组合;

在可视化界面中接收用户输入的第二配置信息,第二配置信息包括:容器镜像描述、容器镜像名称、容器镜像依赖的软件包、容器运行命令或容器执行脚本中的一个或多个的组合;

相应的,根据容器镜像参数生成目标架构适配的dockerfile文件,包括:

根据第一配置信息和第二配置信息生成目标架构适配的dockerfile文件。

进一步的,响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输,包括:

响应于客户端发送的拉取操作,拉取操作中携带元数据,元数据包括目标架构或镜像标识;

根据元数据确定目标容器镜像;

将目标容器镜像反馈至客户端。

进一步的,响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输,包括:

接收客户端发送的上传操作,上传操作中携带元数据和目标容器镜像,元数据包括目标架构或镜像标识;

存储目标容器镜像,建立元数据与目标容器的存储地址的索引关系。

进一步的,响应于客户端触发的容器镜像传输操作,包括:

接收客户端发送的登录信息;

根据登录信息进行校验;

若校验成功,响应客户端触发的容器镜像传输操作。

存储器61作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的容器镜像处理方法对应的程序指令/模块(例如,连接模块510和目标容器镜像传输模块520)。处理器60通过运行存储在存储器61中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现应用于客户端的容器镜像处理方法,该方法包括:

连接服务器端,服务器端存储有多种架构的容器镜像;

向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,传输操作包含元数据,目标容器镜像为目标架构下的容器镜像。

进一步的,向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,包括:

获取客户端的目标架构;

向服务器端发起拉取操作,拉取操作中携带目标容器镜像的元数据,元数据包括目标架构或镜像标识;

接收服务器端反馈的目标容器镜像。

进一步的,向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,包括:

根据本地的目标容器镜像确定元数据,元数据包括:目标架构或镜像标识;

向服务器端发起上传操作,将元数据和本地的目标容器镜像发送至服务器端。

进一步的,连接服务器端,包括:

根据配置文件包含的服务器端地址及登录信息连接服务器端;

相应的,向服务器端发起容器镜像传输操作,包括:

若连接成功,向服务器端发起容器镜像传输操作。

存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器61可进一步包括相对于处理器60远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置62可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置63可包括显示屏等显示设备。

实施例七

本发明实施例七还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种容器镜像处理方法,当应用于服务器端时,该方法包括:

接收用户输入的容器镜像参数,容器镜像参数包括容器适用的目标架构;

根据容器镜像参数生成目标架构适配的dockerfile文件;

服务器端包含多个虚拟机,调用多个虚拟机中的目标虚拟机,在目标虚拟机中根据dockerfile文件构建目标容器镜像,目标虚拟机中运行有目标架构的容器镜像的编译环境;

响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输。

进一步的,接收用户输入的容器镜像参数,包括:

在可视化界面中输出容器镜像参数的选项,接收用户根据选项选择的第一配置信息,第一配置信息包括:容器适用的目标架构、依赖的基础容器镜像或容器镜像版本中的一个或多个的组合;

在可视化界面中接收用户输入的第二配置信息,第二配置信息包括:容器镜像描述、容器镜像名称、容器镜像依赖的软件包、容器运行命令或容器执行脚本中的一个或多个的组合;

相应的,根据容器镜像参数生成目标架构适配的dockerfile文件,包括:

根据第一配置信息和第二配置信息生成目标架构适配的dockerfile文件。

进一步的,响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输,包括:

响应于客户端发送的拉取操作,拉取操作中携带元数据,元数据包括目标架构或镜像标识;

根据元数据确定目标容器镜像;

将目标容器镜像反馈至客户端。

进一步的,响应于客户端触发的容器镜像传输操作,根据传输操作携带的元数据确定目标容器镜像,与客户端进行目标容器镜像的传输,包括:

接收客户端发送的上传操作,上传操作中携带元数据和目标容器镜像,元数据包括目标架构或镜像标识;

存储目标容器镜像,建立元数据与目标容器的存储地址的索引关系。

进一步的,在响应于客户端触发的容器镜像传输操作之前,还包括:

接收客户端发送的登录信息;

根据所述登录信息进行校验;

相应的,所述响应于客户端触发的容器镜像传输操作,包括:

若校验成功,响应客户端触发的容器镜像传输操作。

当应用于客户端时,该方法包括:

连接服务器端,服务器端存储有多种架构的容器镜像;

向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,传输操作包含元数据,目标容器镜像为目标架构下的容器镜像。

进一步的,向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,包括:

获取客户端的目标架构;

向服务器端发起拉取操作,拉取操作中携带目标容器镜像的元数据,元数据包括目标架构或镜像标识;

接收服务器端反馈的目标容器镜像。

进一步的,向服务器端发起目标容器镜像的传输操作,与服务器端进行目标容器镜像传输,包括:

根据本地的目标容器镜像确定元数据,元数据包括:目标架构或镜像标识;

向服务器端发起上传操作,将元数据和本地的目标容器镜像发送至服务器端。

进一步的,连接服务器端,包括:

根据配置文件包含的服务器端地址及登录信息连接服务器端;

相应的,向服务器端发起容器镜像传输操作,包括:

若连接成功,向服务器端发起容器镜像传输操作。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的容器镜像处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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