一种从镜像中提取配置文件的方法、装置及系统与流程

文档序号:15492045发布日期:2018-09-21 20:48阅读:167来源:国知局

本申请涉及容器技术领域,尤其涉及一种从镜像中提取配置文件的方法、装置及系统。



背景技术:

目前,在利用容器创建服务时,需要从镜像库选择提供服务的镜像,还需要设置该服务的基本配置信息(manifest),例如指定该服务对外通信的端口、所需占用的系统资源、启动命令等配置信息,这些基本配置信息一般通过开源镜像库提供的接口获取,但是在部署服务时,往往还需要根据服务内容给服务指定一些特定的配置信息,例如,在配置鉴权服务时,需要设置服务所连接的mysql地址、redis地址等,这些特定的配置信息一般由存储在提供服务的镜像里的配置文件提供。

而在现有技术中,镜像本身或者开源镜像库都不支持从提供服务的镜像中直接提取配置文件,因此,需要从外部上传一个手动修改好的配置文件,在容器启动时,利用该外部上传的配置文件覆盖默认的配置文件,这种配置的方式容易出错,且效率较低。



技术实现要素:

本申请实施例提供了一种从镜像中提取配置文件的方法、装置及系统,用以提高配置服务的准确性和效率。

本申请实施例提供一种从镜像中提取配置文件的方法,该方法包括:

确定用户客户端所选择的镜像及该镜像的版本;

向安装有容器引擎的装置发送提取文件请求,使得所述装置从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

接收所述装置发送的所述配置文件,并将所述配置文件发送给所述用户客户端。

本申请实施例提供的上述方法,通过确定用户客户端所选择的镜像及该镜像的版本,再从该版本的镜像对应的容器中提取配置文件,将所述配置文件发送给用户客户端,用于配置基于该版本的镜像对应的容器建立的服务,由于所述配置文件是从基于用户客户端所选择的镜像建立的容器中提取的,从而提高配置服务的准确性和效率。

可选地,本申请实施例提供的上述方法,当第一次确定所述用户客户端选择所述版本的所述镜像时,该方法还包括:向所述装置发送创建容器命令,使所述装置创建所述版本的所述镜像对应的容器。

本申请实施例提供的上述方法,通过在第一次确定用户客户端选择的镜像和该镜像的版本时,发送创建容器命令给装有容器引擎的装置,使所述装置利用该版本的镜像创建该版本的镜像对应的容器,从而所述装置可以直接从该版本的镜像中提取配置文件,进而提高配置当前服务的准确性。

可选地,本申请实施例提供的上述方法,在所述容器创建完成后,给所述容器设置容器标识;

将所述版本的所述镜像、所述版本的所述镜像对应的容器以及该容器的容器标识的对应关系,保存至对应关系表中。

本申请实施例提供的上述方法,通过在容器创建完成后,给容器设置容器标识,并将镜像,该镜像对应的容器,及该容器的容器标识之间的对应关系保存至对应关系表中,从而当用户客户端选择镜像时,可以根据对应关系表确定该镜像对应的容器,并从该容器中提取配置文件,保证了配置文件的唯一性和准确性。

可选地,本申请实施例提供的上述方法,所述向安装有容器引擎的装置发送提取文件请求,具体包括:

根据所述用户客户端所选择的镜像及该镜像的版本,在所述对应关系表中查询所述版本的所述镜像对应的容器,及该容器对应的容器标识;

确定所述容器的状态为已创建态;

将包含所述容器对应的容器标识的提取文件请求发送给所述装置。

本申请实施例提供的上述方法,在确定用户客户端所选择的镜像及该镜像的版本后,通过确定该版本的镜像对应的容器标识,及该容器的状态为已创建态,避免配置文件因为容器运行发生变化,再将包含该容器的容器标识的提取文件请求发送给装有容器引擎的装置以提取配置文件,从而保证了配置文件的唯一性和准确性。

可选地,本申请实施例提供的上述方法,将所述配置文件发送给用户客户端,具体包括:

将所述配置文件解码为文本格式;

将为文本格式的配置文件封装为json格式;

将为json格式的配置文件发送给用户客户端。

本申请实施例提供的上述方法,通过将配置文件解码为文本格式,再将文本格式的配置文件封装为json格式发送给用户客户端,以便用户客户端可以直接读取配置文件中的配置信息对服务进行配置,提高了配置当前服务的准确性和效率。

本申请实施例提供一种从镜像中提取配置文件的方法,该方法包括:

接收配置文件提取装置发送的提取文件请求;

根据所述提取文件请求确定用户客户端所选择的镜像及该镜像的版本,从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

将所述配置文件发送给所述配置文件提取装置。

本申请实施例提供的上述方法,通过接收配置文件提取装置发送的提取文件请求,再根据提取文件请求确定用户客户端所选择的镜像及该镜像的版本,从该版本的镜像对应的容器中提取配置文件,再将配置文件发送给配置文件提取装置,由于所述配置文件是从用户客户端所选择的镜像中提取的,从而提高配置当前服务的准确性和效率。

可选地,本申请实施例提供的上述方法,当第一次确定所述用户客户端选择所述版本的所述镜像时,该方法还包括:接收所述配置文件提取装置发送的创建容器命令,创建所述版本的所述镜像对应的容器。

本申请实施例提供的上述方法,通过在第一次确定用户客户端选择的镜像和该镜像的版本时,接收配置文件提取装置发送的创建容器命令,利用该版本的镜像创建该版本的镜像对应的容器,从而可以直接从该版本的镜像中提取配置文件,进而提高配置当前服务的准确性。

可选地,本申请实施例提供的上述方法,所述创建所述版本的所述镜像对应的容器,具体包括:

从镜像库中获取所述版本的所述镜像;

使用所述版本的所述镜像创建该镜像对应的容器;

其中,所述容器中包括所述版本的所述镜像对应的配置文件。

本申请实施例提供的上述方法,通过利用用户客户端所选择的该版本的镜像创建对应的容器,从而可以直接提取存储在该版本的镜像中的配置文件,利用所述配置文件配置当前服务,用以提高配置当前服务的准确性和效率。

可选地,本申请实施例提供的上述方法,创建所述版本的所述镜像对应的容器,还包括:将已创建的所述版本的所述镜像对应的容器的状态设置为已创建态。

本申请实施例提供的上述方法,通过将已创建的该版本的镜像对应的容器的状态设置为已创建态,在减少占用系统资源的同时,避免配置文件因容器运行而发生改变,从而保证配置文件的准确性。

可选地,本申请实施例提供的上述方法,从所述版本的所述镜像对应的容器中提取配置文件,具体包括:

接收所述配置文件提取装置发送的提取文件请求;

根据所述提取文件请求中的容器标识,从所述版本的所述镜像对应的容器中提取配置文件;

其中,所述容器标识是由所述配置文件提取装置在所述容器创建完成后,给所述容器设置的。

本申请实施例提供的上述方法,通过利用配置文件提取装置发送的提取文件请求中包含的容器标识,从而可以准确地确定用户客户端所选择的镜像及该镜像的版本,从该版本的镜像对应的容器中提取配置文件,提高配置当前服务的准确性。

本申请实施例提供一种从镜像中提取配置文件的装置,该装置包括:

第一单元,用于确定用户客户端所选择的镜像及该镜像的版本;

第二单元,用于向安装有容器引擎的装置发送提取文件请求,使得所述装置从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

第三单元,用于接收所述装置发送的所述配置文件,并将所述配置文件发送给所述用户客户端。

可选地,本申请实施例提供的上述装置,该装置还包括:第四单元,用于当第一次确定所述用户客户端选择所述版本的所述镜像时,向所述装置发送创建容器命令,使所述装置创建所述版本的所述镜像对应的容器。

可选地,本申请实施例提供的上述装置,在所述容器创建完成后,所述第二单元给所述容器设置容器标识;

将所述版本的所述镜像、所述版本的所述镜像对应的容器以及该容器的容器标识的对应关系,保存至对应关系表中。

可选地,本申请实施例提供的上述装置,所述第二单元向安装有容器引擎的装置发送提取文件请求,具体包括:

根据所述用户客户端所选择的镜像及该镜像的版本,在所述对应关系表中查询所述版本的所述镜像对应的容器,及该容器对应的容器标识;

确定所述容器的状态为已创建态;

将包含所述容器对应的容器标识的提取文件请求发送给所述装置。

可选地,本申请实施例提供的上述装置,所述第一单元将所述配置文件发送给用户客户端,具体包括:

将所述配置文件解码为文本格式;

将为文本格式的配置文件封装为json格式;

将为json格式的配置文件发送给用户客户端。

本申请实施例提供一种从镜像中提取配置文件的装置,该装置包括:

第五单元,用于接收配置文件提取装置发送的提取文件请求;

第六单元,用于根据所述提取文件请求确定用户客户端所选择的镜像及该镜像的版本,从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

第七单元,用于将所述配置文件发送给所述配置文件提取装置。

可选地,本申请实施例提供的上述装置,该装置还包括:第八单元,用于当第一次确定所述用户客户端选择所述版本的所述镜像时,接收所述配置文件提取装置发送的创建容器命令,创建所述版本的所述镜像对应的容器。

可选地,本申请实施例提供的上述装置,所述第八单元创建所述版本的所述镜像对应的容器,具体包括:

从镜像库中获取所述版本的所述镜像;

使用所述版本的所述镜像创建该镜像对应的容器;

其中,所述容器中包括所述版本的所述镜像对应的配置文件。

可选地,本申请实施例提供的上述装置,所述第八单元创建所述版本的所述镜像对应的容器,还包括:将已创建的所述版本的所述镜像对应的容器的状态设置为已创建态。

可选地,本申请实施例提供的上述装置,所述第六单元从所述版本的所述镜像对应的容器中提取配置文件,具体包括:

接收所述配置文件提取装置发送的提取文件请求;

根据所述提取文件请求中的容器标识,从所述版本的所述镜像对应的容器中提取配置文件;

其中,所述容器标识是由所述配置文件提取装置在所述容器创建完成后,给所述容器设置的。

本申请实施例提供一种从镜像中提取配置文件的系统,包括上述任一所述的装置。

本申请实施例提供的第三种从镜像中提取配置文件的装置,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行:

确定用户客户端所选择的镜像及该镜像的版本;

向安装有容器引擎的装置发送提取文件请求,使得所述装置从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

接收所述装置发送的所述配置文件,并将所述配置文件发送给所述用户客户端。

可选地,当第一次确定所述用户客户端选择所述版本的所述镜像时,所述处理器还用于:向所述装置发送创建容器命令,使所述装置创建所述版本的所述镜像对应的容器。

可选地,所述处理器在所述容器创建完成后,给所述容器设置容器标识;

所述处理器将所述版本的所述镜像、所述版本的所述镜像对应的容器以及该容器的容器标识的对应关系,保存至对应关系表中。

可选地,所述向安装有容器引擎的装置发送提取文件请求,具体包括:

根据所述用户客户端所选择的镜像及该镜像的版本,在所述对应关系表中查询所述版本的所述镜像对应的容器,及该容器对应的容器标识;

确定所述容器的状态为已创建态;

将包含所述容器对应的容器标识的提取文件请求发送给所述装置。

可选地,将所述配置文件发送给用户客户端,具体包括:

将所述配置文件解码为文本格式;

将为文本格式的配置文件封装为json格式;

将为json格式的配置文件发送给用户客户端。

本申请实施例提供第四种从镜像中提取配置文件的装置,包括:

存储器,用于存储程序指令;

处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行:

接收配置文件提取装置发送的提取文件请求;

根据所述提取文件请求确定用户客户端所选择的镜像及该镜像的版本,从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

将所述配置文件发送给所述配置文件提取装置。

可选地,当第一次确定所述用户客户端选择所述版本的所述镜像时,该处理器还用于:接收所述配置文件提取装置发送的创建容器命令,创建所述版本的所述镜像对应的容器。

可选地,所述创建所述版本的所述镜像对应的容器,具体包括:

从镜像库中获取所述版本的所述镜像;

使用所述版本的所述镜像创建该镜像对应的容器;

其中,所述容器中包括所述版本的所述镜像对应的配置文件。

可选地,创建所述版本的所述镜像对应的容器,还包括:将已创建的所述版本的所述镜像对应的容器的状态设置为已创建态。

可选地,从所述版本的所述镜像对应的容器中提取配置文件,具体包括:

接收所述配置文件提取装置发送的提取文件请求;

根据所述提取文件请求中的容器标识,从所述版本的所述镜像对应的容器中提取配置文件;

其中,所述容器标识是由所述配置文件提取装置在所述容器创建完成后,给所述容器设置的。

本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述任一所述的方法。

附图说明

图1为本申请实施例提供的镜像的结构示意图;

图2为本申请实施例提供的一种从镜像中提取配置文件的系统的结构示意图;

图3为本申请实施例提供的一种从镜像中提取配置文件的方法的流程示意图之一;

图4为本申请实施例提供的一种从镜像中提取配置文件的方法的流程示意图之二;

图5为本申请实施例提供的一种从镜像中提取配置文件的方法的流程示意图之三;

图6为本申请实施例提供的另一种从镜像中提取配置文件的方法的流程示意图之一;

图7为本申请实施例提供的另一种从镜像中提取配置文件的方法的流程示意图之二;

图8为本申请实施例提供的另一种从镜像中提取配置文件的方法的流程示意图之三;

图9为本申请实施例提供的一种从镜像中提取配置文件的装置的结构示意图;

图10为本申请实施例提供的另一种从镜像中提取配置文件的装置的结构示意图;

图11为本申请实施例提供的一种从镜像中提取配置文件的装置的结构示意图;

图12为本申请实施例提供的另一种从镜像中提取配置文件的装置的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在容器引擎(docker)中,容器(container)可以提供服务,例如在容器中运行应用,在容器中运行网站等,而容器是基于镜像(image)创建的。

如图1所示,镜像04由多个只读层组成,在多个只读层中存储的信息包括:系统内核(kernel)041,提供服务的应用安装包042,基本配置信息(manifest)043及配置文件044等。在利用容器创建服务时,需要在镜像库中选择提供服务的镜像后,根据服务的内容对服务进行配置,其中,基本配置信息044,例如可以包括环境变量、服务端口、启动命令及用户、日志格式和挂载、同一存储、健康检查、资源配额等信息,基本配置信息可以通过镜像04所在的镜像库提供的接口直接获取,而一些特定的配置信息,则需要由存储在镜像04中的配置文件044提供。但通常情况下,并不支持从镜像04中直接提取配置文件,因此需要技术人员手动修改配置文件。

如图2所示,本申请实施例提供一种从镜像中提取配置文件的方法,用户在用户客户端01上选择镜像及该镜像的版本,配置文件提取装置02根据用户通过用户客户端01选择的镜像及该镜像的版本,发送提取文件请求给docker装置(以下简称“docker装置”)03,docker装置03接收提取文件请求后,从存储在docker装置03中的该版本的镜像对应的容器05中提取配置文件,再将配置文件发送给配置文件提取装置02,配置文件提取装置02再将配置文件发送给用户客户端01,用以配置当前服务。

其中,所述配置文件提取装置02例如可以为一台计算机,具有通信、计算等功能;所述docker装置03例如可以为一台计算机或一台服务器,安装有docker引擎,可以在本地或网络端存储容器,并利用容器提供服务。

在配置文件提取装置02侧,如图3所示,本申请实施例提供一种从镜像中提取配置文件的方法,该方法包括:

s11、确定用户客户端01所选择的镜像及该镜像的版本;

s12、向安装有docker装置03发送提取文件请求,使得docker装置03从用户客户端01所选择的版本的镜像对应的容器05中提取配置文件,配置文件用于配置基于该版本的镜像对应的容器建立的服务;

s13、接收docker装置03发送的配置文件,并将配置文件发送给用户客户端01。

可选地,在本申请实施例提供的上述方法中,配置文件提取装置02例如可以通过超文本传输协议(hypertexttransferprotocol,http)将配置文件发送给用户客户端01,当然,也可以通过其他方式将配置文件发送给用户客户端01,具体的可根据实际需要设计,在此不做限定。

可选地,在本申请实施例提供的上述方法中,配置文件提取装置02可以和docker装置03安装在同一机器中,也可以安装在不同机器中。当配置文件提取装置02和docker装置03安装在不同机器中时,配置文件提取装置02可以不在本地安装docker,即配置文件提取装置02不需要具有docker环境,只需通过调用docker远程接口发送命令的方式与docker装置03通信,使得docker装置03根据文件提取装置02发送的命令进行容器创建和配置文件提取等操作,而不用拉取镜像至配置文件提取装置02中,从而节省配置服务时的传输时间和宽带资源;并且,根据用户客户端01所选择的该版本的镜像所创建的容器05也可以存储在docker装置03中,从而减少对存储空间的占用。具体地,可根据实际需要设计,在此不做限定。

本申请实施例提供的上述方法,通过从用户客户端01所选择的版本的镜像对应的容器中提取配置文件,将配置文件发送给用户客户端01对当前服务进行配置,从而提高配置当前服务的准确性和效率。

可选地,在本申请实施例提供的上述方法中,当第一次确定用户客户端01选择该版本的镜像时,该方法还包括:配置文件提取装置02发送创建容器命令给docker装置03,使docker装置03创建该版本的镜像对应的容器。

镜像由多个只读层组成,容器包括多个只读层以及最上层的可写可读层,基于该镜像创建该镜像对应的容器,则可以通过容器读取镜像中存储的信息。从而在本申请实施例提供的上述方法中,通过在用户客户端01第一次选择该版本的镜像时,发送创建容器命令给docker装置03,使docker装置03利用该版本的镜像创建该版本的镜像对应的容器,如图2所示,创建完成的容器05存储在docker装置03中,从而docker装置可以直接从该版本的镜像对应的容器中提取该版本的镜像中的配置文件,省去了手动修改配置文件再传入运行服务的容器中的操作,进而提高配置当前服务的准确性和效率。

可选地,本申请实施例提供的上述方法,在该版本的镜像对应的容器05创建完成后,配置文件提取装置02给该版本的镜像对应的容器05设置容器标识;

将该版本的镜像、该版本的镜像对应的容器以及该容器的容器标识的对应关系,保存至对应关系表中,对应关系表存储在配置文件提取装置02中。

可选地,在本申请实施例提供的上述方法中,所述容器标识例如可以为键-值(key-value)的形式,即给容器设置key值和value值,一个key值对应一个value值,从而保证容器标识与容器的对应关系的唯一性,进而保证了基于用户客户端01所选择的该版本的镜像创建的容器中的配置文件的唯一性,当然,也可以通过其他方式设置容器标识,只要保证用户客户端01所选择的该版本的镜像对应的容器的容器标识的唯一性,都是可行的,在此不做限定。

通过在容器创建完成后,配置文件提取装置02给容器设置容器标识,并将镜像、该镜像对应的容器及该容器的容器标识之间的对应关系保存至配置文件提取装置02中的对应关系表中,从而当用户客户端选择镜像及镜像的版本时,可以根据对应关系表确定该版本的镜像对应的容器,并从该容器中提取配置文件,保证了配置文件的唯一性和准确性。

可选地,如图4所示,在本申请实施例提供的上述方法中,配置文件提取装置02确定用户客户端所选择的镜像及该镜像的版本后,向docker装置03发送提取文件请求,具体包括:

s41、根据用户客户端所选择的镜像及该镜像的版本,在对应关系表中查询该版本的镜像对应的容器,及该容器对应的容器标识;

s42、确定该版本的镜像对应的容器的状态为已创建(created)态;

s43、将包含该容器的容器标识的提取文件请求发送给docker装置03。

具体地,配置文件提取装置02在第一次确定用户客户端01选择该版本的镜像后,使docker装置03创建该版本的镜像对应的容器,容器创建完成后给该容器设置容器标签,从而在非第一次确定用户客户端01选择该版本的镜像时,通过查询对应关系表确定该版本的镜像已存在相对应的容器,再通过对应关系表确定该容器的容器标识,将该容器的容器标识携带入提取文件请求中发送给docker装置03,使得docker装置03根据提取文件请求中的容器标识确定用户客户端01所选择的该版本的镜像的容器,从该容器中提取配置文件。

可选地,在本申请实施例提供的上述方法中,在对应关系表中查询容器的容器标识的方式可以为多种查询方式,例如利用docker的远程接口命令(dockerremoteapi)查询,当然,也可以通过其他方式查询,具体的,可根据实际需要设计,在此不做限定。

容器创建后的状态(status)包括如下几种状态:

已创建态(created),容器已经被创建,但是还未被启动;

运行态(running),容器在运行中;

暂停态(paused),容器的进程被暂停;

重启态(restarting),容器的进程正在重启过程中;

停止态(exited),表示容器之前运行过但是现在处于停止状态,可以通过开始(start)命令使处于exited状态的容器重新进入running状态;

摧毁态(destroyed),容器被删除。

现有技术中,容器被创建后默认的状态为running态,而处于running态的容器,一方面,在占用存储空间资源的同时,还需占用中央处理器(centralprocessingunit,cpu)资源,另一方面,处于running态的容器中的参数是动态的,因此running态的容器中的配置文件有可能发生改变。

因此,可选地,在本申请实施例提供的上述方法中,在容器创建后,使docker装置03将容器的状态设置为created态,一方面,created态的容器只占用存储空间资源,不需占用cpu资源,另一方面,created态的容器中的参数是静态的,因此created态的容器中的配置文件不会发生改变。通过在根据用户所选择的版本的镜像确定该版本的镜像对应容器的容器标识,再确定该容器的状态为已创建态,在减少占用系统资源的同时,避免配置文件因为容器运行发生变化,再将包含该容器的容器标识的提取文件请求发送给docker装置03以提取配置文件,从而保证了配置文件的唯一性和准确性。

可选地,如图5所示,本申请实施例提供的上述方法,配置文件提取装置02将用户客户端01所选择的该版本的镜像对应的容器中的配置文件发送给用户客户端01,具体包括:

s51、将用户客户端01所选择的该版本的镜像对应的容器中配置文件解码为文本格式;

s52、将为文本格式的配置文件封装为json格式;

s53、将为json格式的配置文件发送给用户客户端01。

可选地,在本申请实施例提供的上述方法中,docker装置03例如可以通过文件流(filestream)的形式将配置文件发送给配置文件提取装置02,文件流可以包括二进制文本,配置文件提取装置02接收docker装置03发送的文件流形式的配置文件,将文件流形式的配置文件解码为文本格式,再将文本格式的配置文件封装为json格式发送给用户客户端01,使得用户客户端01可直接读取json格式的配置文件中的配置信息,对当前服务进行配置,从而提高了配置当前服务的准确性和效率。

在docker装置03侧,如图6所示,本申请实施例提供一种从镜像中提取配置文件的方法,该方法包括:

s61、接收配置文件提取装置02发送的提取文件请求;

s62、根据提取文件请求确定用户客户端01所选择的镜像及该镜像的版本,从该版本的镜像对应的容器中提取配置文件,所述配置文件用于配置基于该版本的镜像对应的容器建立的服务;

s63、将配置文件发送给配置文件提取装置02。

可选地,在本申请实施例提供的上述方法中,docker装置03例如可以通过文件流(filestream)的形式将配置文件发送给配置文件提取装置02,当然也可以通过其他方式将配置文件发送给配置文件提取装置02,具体的可根据实际需要设计,在此不做限定。

本申请实施例提供的上述方法,通过接收配置文件提取装置02发送的提取文件请求,再根据提取文件请求确定用户客户端01所选择的镜像及该镜像的版本,docker装置03从该版本的镜像对应的容器05中提取配置文件,再将配置文件发送给配置文件提取装置02,由于配置文件是从用户客户端01所选择的镜像对应的容器中提取的,从而提高配置当前服务的准确性和效率。

可选地,在本申请实施例提供的上述方法中,当第一次确定用户客户端01选择该版本的镜像时,该方法还包括:docker装置03接收配置文件提取装置02发送的创建容器命令,创建该版本的镜像对应的容器。

可选地,在本申请实施例提供的上述方法中,当同一镜像有多个版本时,若用户客户端01选择了同一镜像的不同版本,则需要根据同一镜像的不同版本分别创建不同的容器,例如,一镜像有3个版本,用户客户端01分别选择了该镜像的3个版本创建服务,则需要使docker装置03分别创建3个容器,即一个容器对应于一个镜像的一个版本,通过使一个容器仅对应于一个镜像的一个版本,从而保证了配置文件的唯一性和准确性,避免配置出错。

可选地,如图7所示,本申请实施例提供的上述方法,docker装置03创建该版本的镜像对应的容器,具体包括:

s71、从镜像库中获取该版本的镜像;

s72、使用该版本的镜像创建该版本的镜像对应的容器;

其中,所述容器中包括该版本的镜像对应的配置文件。

可选地,在本申请实施例提供的上述方法中,当第一次确定用户客户端01选择该版本的镜像时,docker装置03从镜像库中获取该版本的镜像,例如可以通过镜像拉取(dockerpull)命令从镜像库中拉取用户客户端01所选择的该版本的镜像,将该版本的镜像复制到docker装置03中,利用该版本的镜像创建该版本的镜像对应的容器,该容器存储在docker装置03中,而镜像库中保留该版本的镜像,可供其他服务使用,当然,也可以通过其他方式拉取镜像,具体的可根据实际需要设计,在此不做限定。

可选地,在本申请实施例提供的上述方法中,镜像库可以和docker装置03安装在同一机器上,也可以和docker装置03安装在不同机器上,当docker装置03与镜像库安装在不同的机器中,只需通过远程接口拉取镜像即可,在此不做限定。

本申请实施例提供的上述方法,通过在用户客户端01第一次选择该版本的镜像时,接收配置文件提取装置02发送的创建容器命令,利用该版本的镜像创建该版本的镜像对应的容器,如图2所示,创建完成的容器05存储在docker装置03中,从而docker装置03可以直接从该版本的镜像对应的容器05中提取配置文件,避免了手动修改配置文件再传入运行服务的容器中的操作,进而提高配置当前服务的准确性和效率。

可选地,本申请实施例提供的上述方法,docker装置03创建该版本的镜像对应的容器,还包括:将已创建的该版本镜像对应的容器的状态设置为已创建(created)态。

本申请实施例提供的上述方法,通过将已创建的该版本的镜像对应的容器的状态设置为created态,一方面,created态的容器只占用存储空间资源,不需占用cpu资源,另一方面,created态的容器中的参数是静态的,因此created态的容器中的配置文件不会发生改变,在减少占用系统资源的同时,避免配置文件因容器运行而发生改变,从而保证了配置文件的准确性。

可选地,如图8所示,在本申请实施例提供的上述方法中,docker装置03从该版本的镜像对应的容器中提取配置文件,具体包括:

s81、接收配置文件提取装置02发送的提取文件请求;

s82、根据提取文件请求中的容器标识,从该版本的镜像对应的容器中提取配置文件;

其中,该版本的镜像对应的容器的容器标识是由配置文件提取装置02在容器创建完成后,给容器设置的。

本申请实施例提供的上述方法,通过在接收配置文件提取装置02发送的提取文件请求后,根据提取文件请求中包含的容器标识,从而可以准确地确定用户客户端所选择的版本的镜像对应的容器,docker装置03从该版本的镜像对应的容器中提取配置文件,再发送给配置文件提取装置02,由配置文件提取装置02将配置文件发送给用户客户端01,从而提高配置当前服务的准确性。

基于同一发明构思,如图9所示,本申请实施例提供一种从镜像中提取配置文件的装置,该装置包括:

第一单元901,用于确定用户客户端所选择的镜像及该镜像的版本;

第二单元902,用于向docker装置03发送提取文件请求,使得docker装置03从该版本的镜像对应的容器中提取配置文件,所述配置文件用于配置基于该版本的镜像对应的容器建立的服务;

第三单元903,用于接收docker装置03发送的配置文件,并将配置文件发送给所述用户客户端01。

可选地,本申请实施例提供的上述装置,该装置还包括:第四单元,用于当第一次确定用户客户端01选择该版本的镜像时,发送创建容器命令给docker装置03,使docker装置03创建该版本的镜像对应的容器。

可选地,本申请实施例提供的上述装置,在该版本的镜像对应容器创建完成后,第二单元902给该容器设置容器标识;

将该版本的镜像、该版本的镜像对应的容器以及该容器的容器标识的对应关系,保存至对应关系表中。

可选地,本申请实施例提供的上述装置,第二单元902向docker装置03发送提取文件请求,具体包括:

根据用户客户端01所选择的镜像及该镜像的版本,在对应关系表中查询该版本的镜像对应的容器,及该容器对应的容器标识;

确定该容器的状态为已创建态;

将包含该容器对应的容器标识的提取文件请求发送给docker装置03。

可选地,本申请实施例提供的上述装置,第一单元901将配置文件发送给用户客户端01,具体包括:

将配置文件解码为文本格式;

将为文本格式的配置文件封装为json格式;

将为json格式的配置文件发送给用户客户端01。

如图10所示,本申请实施例提供一种从镜像中提取配置文件的装置,该装置包括:

第五单元1001,用于接收配置文件提取装置02发送的提取文件请求;

第六单元1002,用于根据提取文件请求确定用户客户端01所选择的镜像及该镜像的版本,从该版本的镜像对应的容器中提取配置文件,配置文件用于配置基于该版本的镜像对应的容器建立的服务;

第七单元1003,用于将配置文件发送给配置文件提取装置02。

可选地,本申请实施例提供的上述装置,该装置还包括:第八单元,用于当第一次确定用户客户端01选择该版本的镜像时,接收配置文件提取装置02发送的创建容器命令,创建该版本的镜像对应的容器。

可选地,本申请实施例提供的上述装置,第八单元创建该版本的镜像对应的容器,具体包括:

从镜像库中获取该版本的镜像;

使用该版本的镜像创建该镜像对应的容器;

其中,该版本的镜像对应容器中包括该版本的镜像对应的配置文件。

可选地,本申请实施例提供的上述装置,第八单元创建该版本的镜像对应的容器,还包括:将已创建的该版本的镜像对应的容器的状态设置为已创建态。

可选地,本申请实施例提供的上述装置,第六单元1002从该版本的镜像对应的容器中提取配置文件,具体包括:

接收配置文件提取装置02发送的提取文件请求;

根据提取文件请求中的容器标识,从该版本的镜像对应的容器中提取配置文件;

其中,该版本的镜像对应的容器的容器标识是由配置文件提取装置02在该容器创建完成后,给该容器设置的。

基于同一发明构思,如图2所示,本申请实施例提供一种从镜像中提取配置文件的系统,包括上述任一所述的配置文件提取装置02,和/或,包括上述任一所述的docker装置03,还可以包括至少一个用户客户端01。

基于同一发明构思,如图11所示,本申请实施例提供一种从镜像中提取配置文件的装置,该从镜像中提取配置文件的装置与用户客户端01、docker装置03相连,包括:

存储器1101,用于存储程序指令;

处理器1102,用于调用所述存储器中存储的程序指令,按照获得的程序执行下列过程:

处理器1102确定用户客户端所选择的镜像及该镜像的版本;

处理器1102向安装有容器引擎的装置发送提取文件请求,使得所述装置从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

处理器1102接收所述装置发送的所述配置文件,并将所述配置文件发送给所述用户客户端。

可选地,处理器1102还用于当第一次确定所述用户客户端选择所述版本的所述镜像时,向所述装置发送创建容器命令,使所述装置创建所述版本的所述镜像对应的容器。

可选地,在所述容器创建完成后,处理器1102给所述容器设置容器标识;

将所述版本的所述镜像、所述版本的所述镜像对应的容器以及该容器的容器标识的对应关系,保存至对应关系表中。

可选地,处理器1102向安装有容器引擎的装置发送提取文件请求,具体包括:

根据所述用户客户端所选择的镜像及该镜像的版本,在所述对应关系表中查询所述版本的所述镜像对应的容器,及该容器对应的容器标识;

确定所述容器的状态为已创建态;

将包含所述容器对应的容器标识的提取文件请求发送给所述装置。

可选地,处理器1102将所述配置文件发送给用户客户端,具体包括:

将所述配置文件解码为文本格式;

将为文本格式的配置文件封装为json格式;

将为json格式的配置文件发送给用户客户端。

其中,在图11中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1102代表的一个或多个处理器和存储器1101代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器1102负责管理总线架构和通常的处理,存储器1101可以存储处理器1102在执行操作时所使用的数据。

可选的,处理器1102可以是中央处埋器(cpu)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)。

基于同一发明构思,如图12所示,本申请实施例提供一种从镜像中提取配置文件的装置,该从镜像中提取配置文件的装置与配置文件提取装置02相连,包括:

存储器1201,用于存储程序指令;

处理器1202,用于调用所述存储器中存储的程序指令,按照获得的程序执行下列过程:

处理器1202接收配置文件提取装置发送的提取文件请求;

处理器1202根据所述提取文件请求确定用户客户端所选择的镜像及该镜像的版本,从所述版本的所述镜像对应的容器中提取配置文件,所述配置文件用于配置基于所述版本的所述镜像对应的容器建立的服务;

处理器1202将所述配置文件发送给所述配置文件提取装置。

可选地,处理器1202还用于当第一次确定所述用户客户端选择所述版本的所述镜像时,接收所述配置文件提取装置发送的创建容器命令,创建所述版本的所述镜像对应的容器。

可选地,处理器1202创建所述版本的所述镜像对应的容器,具体包括:

从镜像库中获取所述版本的所述镜像;

使用所述版本的所述镜像创建该镜像对应的容器;

其中,所述容器中包括所述版本的所述镜像对应的配置文件。

可选地,处理器1202创建所述版本的所述镜像对应的容器,还包括:将已创建的所述版本的所述镜像对应的容器的状态设置为已创建态。

可选地,处理器1202从所述版本的所述镜像对应的容器中提取配置文件,具体包括:

接收所述配置文件提取装置发送的提取文件请求;

根据所述提取文件请求中的容器标识,从所述版本的所述镜像对应的容器中提取配置文件;

其中,所述容器标识是由所述配置文件提取装置在所述容器创建完成后,给所述容器设置的。

其中,在图12中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1202代表的一个或多个处理器和存储器1201代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器1202负责管理总线架构和通常的处理,存储器1201可以存储处理器1202在执行操作时所使用的数据。

可选的,处理器1202可以是中央处埋器(cpu)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)。

本申请实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述任一所述的方法。

所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

综上所述,本申请实施例提供的上述从镜像中提取配置文件的装置,通过确定用户客户端所选择的镜像及该镜像的版本,从该版本的镜像对应的容器中提取配置文件,将配置文件发送给用户客户端,用于配置基于该版本的镜像对应的容器建立的服务,由于所述配置文件是从用户客户端所选择的镜像中提取的,从而提高了配置当前服务的准确性和效率。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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