生成容器的方法、装置、终端、服务器与系统
技术领域
本申请涉及服务器技术,尤其涉及一种生成容器的方法、装置、终端、服务器与系统。
背景技术
集装箱(Docker)是一个开源的应用容器引擎,其可以提供一种应用的自动化部署解决方案,具体地,可以通过镜像迅速创建一个容器(container),容器即为轻量级虚拟机,其部署和运行基础服务可变程序,并通过配置文件可以轻松实现基础服务可变程序的自动化安装、部署和升级,非常方便。Docker虚拟出多个容器,每个容器之间相互隔离没有借口,可以将彼此的生产环境和开发环境分开,互不影响。
现有技术中,用于创建容器的镜像为一个完整的基础操作系统环境,其包括基础服务固化程序和基础服务可变程序,其中,基础服务固化程序所提供的服务包括很多,例如从用于不同应用之间的通信的通信管理、身份验证、授权的安全服务、错误管理等,基础服务可变程序是依托于基础服务固化程序来为用户提供服务的,例如调用基础服务固化程序来为用户提供服务,即一些应用程序。在根据镜像创建容器之后,容器中也会包括基础服务固化程序和基础服务可变程序。由于基础服务可变程序依托于基础服务固化程序,因此,镜像需要创建一些信息以维护两者之间的关系,例如在镜像中设置基础服务可变程序后,镜像中不仅多了基础服务可变程序,而且还需要记录基础服务可变程序的位置信息,这样在通过镜像创建容器时,这些位置信息也会存在于容器中,这样不仅会占用容器的空间,还会影响容器的创建速度。
发明内容
本申请提供一种生成容器的方法、装置、终端、服务器与系统,以解决现有技术中容器的创建速度慢的问题。
一个方面,本申请提供一种生成容器的系统,包括:
服务器,存储有第一基础服务变化程序基础服务可变程序的软件包;
终端,用于根据镜像生成第一容器,所述镜像和第一容器中均包括基础服务固化程序,并用于从所述服务器中获取所述软件包,根据所述软件包在所述第一容器中安装所述第一基础服务变化程序基础服务可变程序,所述第一基础服务变化程序基础服务可变程序基于所述基础服务固化程序为用户提供应用服务。
另一个方面,本申请提供一种生成容器的方法,包括:
根据镜像生成第一容器,所述镜像和第一容器中均包括基础服务固化程序;
通过服务器获取第一基础服务可变程序的软件包,并根据所述软件包在所述第一容器中安装所述第一基础服务可变程序,所述第一基础服务可变程序基于所述基础服务固化程序为用户提供应用服务。
另一方面,本申请提供一种生成容器的方法,包括:
接收第一容器发送的获取第一基础服务可变程序的软件包的第三请求;
根据所述第三请求向所述第一容器发送所述软件包的信息,以使所述第一容器根据所述软件包的信息获取所述软件包,并在所述第一容器内安装所述第一基础服务可变程序,所述第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,所述基础服务固化程序是根据镜像生成所述第一容器时生成的。
再一方面,本申请提供一种生成容器的装置,包括:
生成模块,用于根据镜像生成第一容器,所述镜像和第一容器中均包括基础服务固化程序;
第一获取模块,用于通过服务器获取第一基础服务可变程序的软件包,所述第一基础服务可变程序基于所述基础服务固化程序为用户提供应用服务;
第一安装模块,用于根据所述软件包在所述第一容器中安装所述第一基础服务可变程序。
又一方面,本申请提供一种生成容器的装置,包括:
处理器,用于根据镜像生成第一容器,所述镜像和第一容器中均包括基础服务固化程序;
第一输入设备,用于通过服务器获取第一基础服务可变程序的软件包,所述第一基础服务可变程序基于所述基础服务固化程序为用户提供应用服务;
所述处理器还用于,根据所述软件包在所述第一容器中安装所述第一基础服务可变程序。
另一方面,本申请提供一种终端,包括前述任意一项的装置。
再一方面,本申请提供一种生成容器的装置,包括:
第一接收模块,用于接收第一容器发送的获取第一基础服务可变程序的软件包的第三请求;
第一发送模块,用于根据所述第三请求向所述第一容器发送所述软件包的信息,以使所述第一容器根据所述软件包的信息获取所述软件包,并在所述第一容器内安装所述第一基础服务可变程序,所述第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,所述基础服务固化程序是根据镜像生成所述第一容器时生成的。
又一方面,本申请提供一种生成容器的装置,包括:
第二输入设备,用于接收第一容器发送的获取第一基础服务可变程序的软件包的第三请求;
输出设备,用于根据所述第三请求向所述第一容器发送所述软件包的信息,以使所述第一容器根据所述软件包的信息获取所述软件包,并在所述第一容器内安装所述第一基础服务可变程序,所述第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,所述基础服务固化程序是根据镜像生成所述第一容器时生成的。
另一方面,本申请提供一种服务器,包括前述任意一项的装置。
再一方面,本申请提供一种生成容器的系统,包括前述的终端、服务器和镜像。
在本申请中,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例的生成容器的方法的流程示意图;
图2为本申请另一实施例的生成容器的方法的流程示意图;
图3为本申请再一实施例的生成容器的方法的流程示意图;
图4为本发明一实施例提供的生成容器的装置的结构示意图;
图5为本发明另一实施例提供的生成容器的装置的结构示意图;
图6为本发明再一实施例提供的生成容器的装置的结构示意图;
图7为本发明又一实施例提供的生成容器的装置的结构示意图;
图8为本发明另一实施例提供的生成容器的装置的结构示意图;
图9为本发明再一实施例提供的生成容器的装置的结构示意图;
图10为本发明又一实施例提供的生成容器的装置的结构示意图;
图11为本发明一实施例提供的生成容器的系统的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
为了清楚起见,首先说明本发明使用的特定词或短语的定义。
镜像:一个完整的操作系统环境,包括基础服务固化程序,基础服务固化程序所提供的服务包括很多,例如从用于不同应用之间的通信的通信管理、身份验证、授权的安全服务、错误管理等。
容器:轻量级虚拟机,其部署和运行基础服务可变程序,其通过镜像创建。
首先对本发明的生成容器的系统进行相关介绍。
如图11所示,为根据本实施例的生成容器的系统的结构示意图。该系统包括服务器1104和终端1110。其中服务器1104存储有第一基础服务可变程序的软件包,终端1110用于根据镜像生成第一容器,镜像和第一容器中均包括基础服务固化程序,并用于从服务器中获取软件包,根据软件包在第一容器中安装第一基础服务可变程序,第一基础服务可变程序基于基础服务固化程序为用户提供应用服务。
其中,基础服务固化程序是指与应用程序运行环境相关的程序,例如从用于不同应用之间的通信的通信管理、身份验证、授权的安全服务、错误管理等,基础服务可变程序是依托于基础服务固化程序来为用户提供服务的,例如调用基础服务固化程序来为用户提供服务,即一些应用程序。服务器中基础服务可变程序能够升级,进而实现功能的优化或者完善。
终端1110可以是各种终端,例如手机、电脑、掌上电脑等各种终端,具体不做限定。
终端1110具体如何根据镜像生成第一容器,属于现有技术,在此不再赘述。
当终端1110生成第一容器之后,具体可以向服务器1104发送下载第一基础服务可变程序的软件包的第一请求,服务器1104在接收到终端1110发送的下载第一基础服务可变程序的软件包的第一请求,根据第一请求向终端1110返回软件包,进而终端1110可以接收到服务器1104返回的软件包,或者,终端1110向服务器1104发送下载第一基础服务可变程序的软件包的第二请求,服务器1104接收终端1110发送的下载第一基础服务可变程序的软件包的第二请求,并根据第二请求返回软件包的第二地址信息,这样终端1110可以接收到服务器1104根据第二请求返回的软件包的第二地址信息,并根据第二地址信息获取软件包。
终端获取到该软件包之后,就可以执行安装操作,进而使得第一容器中具有第一基础服务可变程序,第一容器能够为用户提供相应地服务。
可选地,本实施例的终端1110还用于:
通过服务器1104获取第一基础服务可变程序的升级包;
根据升级包对第一基础服务可变程序进行升级。
服务器1104中的第一基础服务可变程序的软件包可以被升级包所代替,这样,终端可以通过服务器1104获取升级包并根据升级包对第一基础服务可变程序进行升级,进而实现功能优化与完善。
服务器1104具体可以用于向终端1110发送第一基础服务可变程序的升级包的第一地址信息,相应地,终端具体用于:接收服务器发送的第一地址信息,并根据第一地址信息获取升级包。
服务器具体用于:接收终端发送的下载第一基础服务可变程序器的升级包的获取请求,并根据获取请求向终端返回升级包的第一地址信息。相应地,终端1110具体用于:
向服务器1104发送下载第一基础服务可变程序器的升级包的获取请求;
接收服务器1104返回的升级包的第一地址信息;
根据第一地址信息获取升级包。
上述两种获取升级包的方式为终端1110侧获取升级包的第一地址信息,进而根据第一地址信息获取升级包。
服务器1104也可以直接向终端侧1104发送该升级包,这样,终端1110直接接收服务器1104发送的第一基础服务可变程序的升级包,或者服务器1104具体用于:接收终端1110发送的下载第一基础服务可变程序器的升级包的获取请求,并根据获取请求向终端返回升级包;相应地,终端1110具体用于:
向服务器1104发送下载第一基础服务可变程序器的升级包的获取请求;
接收服务器1104根据获取请求返回的升级包。
这样,终端1110接收到升级包之后,可以直接安装该升级包。
本发明中,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
实施例一
本实施例提供一种生成容器的方法,执行主体为生成容器的装置,该装置可以设置在终端中。
如图1所示,为根据本实施例的生成容器的方法的流程示意图。该生成容器的方法包括:
步骤101,根据镜像生成第一容器,镜像和第一容器中均包括基础服务固化程序。
本实施例的镜像中包括的是基础服务固化程序,因此,通过镜像所创建的第一容器中也包括基础服务。
具体如何通过镜像生成第一容器属于现有技术,在此不再赘述。
步骤102,通过服务器获取第一基础服务可变程序的软件包。
第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,即,该第一基础服务可变程序需运行在基础服务固化程序的环境下为用户提供应用服务。
该步骤102具体可以包括:
向服务器发送下载第一基础服务可变程序的软件包的第一请求;
接收服务器根据第一请求返回的软件包。
即,装置向服务器发送第一请求后,服务器根据该第一请求获知需发送第一基础服务可变程序的软件包,接下来就向装置发送该软件包。
或者是,该步骤102具体可以包括:
向服务器发送下载第一基础服务可变程序的软件包的第二请求;
接收服务器根据第二请求返回的软件包的第二地址信息;
根据第二地址信息获取软件包。
当服务器接收到第二请求时,获知装置需获取第一基础服务可变程序的软件包,则向装置发送该软件包的第二地址信息,这样,装置通过该第二地址信息下载软件包。
需指出的是,装置可以在接收到用户发送的触发指令之后执行步骤102,例如由用户选择所获取的第一基础服务可变程序,或者用户在触发步骤101时所发送的指令中带有第一基础服务可变程序的标识信息,这样装置可以根据该标识信息通过服务器获取第一基础服务可变程序的软件包,当然,装置也可以主动执行步骤102,进而能够尽快下载第一基础服务可变程序的软件包。
步骤103,根据软件包在第一容器中安装第一基础服务可变程序。
软件包安装至第一容器中后,第一容器就可以为用户提供第一基础服务可变程序的服务功能。
可选地,镜像和第一容器中均还包括获取应用,该获取应用用于与服务器进行数据传输。即步骤102的操作具体可以通过该获取应用来完成。该获取应用还可以包括第一基础服务可变程序的入口点,即第一基础服务可变程序开始运行的地方。
可选地,镜像和第一容器中均还包括服务器的地址信息,以根据服务器的地址信息与服务器进行数据传输。即镜像中预先设置有服务器的地址信息,当终端根据镜像生成第一容器之后,第一容器中也会存储有服务器的地址信息。相应地,获取应用可以根据该服务器的地址信息查找到服务器,进而与服务进行数据传输。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
实施例二
本实施例对实施例一的生成第一容器的方法做进一步补充说明。本实施例主要对第一容器中的基础服务可变程序进行升级的方法做补充说明。
如图2所示,为根据本实施例的生成第一容器的方法的流程示意图。该生成第一容器的方法包括:
步骤201,根据镜像生成第一容器,镜像和第一容器中均包括基础服务固化程序。
本实施例的镜像中包括的是基础服务固化程序,因此,通过镜像所创建的第一容器中也包括基础服务。
具体如何通过镜像生成第一容器属于现有技术,在此不再赘述。
步骤202,通过服务器获取第一基础服务可变程序的软件包。
第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,即,该第一基础服务可变程序需运行在基础服务固化程序的环境下为用户提供应用服务。
该步骤202具体可以包括:
向服务器发送下载第一基础服务可变程序的软件包的第一请求;
接收服务器根据第一请求返回的软件包。
即,装置向服务器发送第一请求后,服务器根据该第一请求获知需发送第一基础服务可变程序的软件包,接下来就向装置发送该软件包。
或者是,该步骤202具体可以包括:
向服务器发送下载第一基础服务可变程序的软件包的第二请求;
接收服务器根据第二请求返回的软件包的第二地址信息;
根据第二地址信息获取软件包。
当服务器接收到第二请求时,获知装置需获取第一基础服务可变程序的软件包,则向装置发送该软件包的第二地址信息,这样,装置通过该第二地址信息下载软件包。
需指出的是,装置可以在接收到用户发送的触发指令之后执行步骤102,例如由用户选择所获取的第一基础服务可变程序,或者用户在触发步骤101时所发送的指令中带有第一基础服务可变程序的标识信息,这样装置可以根据该标识信息通过服务器获取第一基础服务可变程序的软件包,当然,装置也可以主动执行步骤102,进而能够尽快下载第一基础服务可变程序的软件包。
步骤203,根据软件包在第一容器中安装第一基础服务可变程序。
软件包安装至第一容器中后,第一容器就可以为用户提供第一基础服务可变程序的服务功能。
步骤204,通过服务器获取第一基础服务可变程序的升级包。
第一容器在安装第一基础服务可变程序之后,第一基础服务可变程序有可能根据实际需要进行升级,这样就需要在第一容器内对第一基础服务可变程序进行升级。
该步骤可以包括以下几种方式:
方式一:接收服务器发送的第一基础服务可变程序的升级包的第一地址信息;
根据第一地址信息获取升级包。
当服务器获取到第一基础服务可变程序的升级包的第一地址信息时,就主动将该第一地址信息发送给装置,装置接收到该第一地址信息时,就可以根据该第一地址信息下载该升级包。
需指出的是,若服务器中存储的是第一基础服务可变程序的第二地址信息,则可以采用第一地址信息覆盖该第二地址信息。
具体地,该升级包可以存储在任何位置,例如服务器中或外置存储器中。更为具体地,当服务器接收到装置发送的下载第一基础服务可变程序的软件包的第一请求之后,服务器记录该装置的标识信息,并在识别出服务器的预设位置存储有第一地址信息或原软件包的下载地址被第一地址信息覆盖之后,向装置发送该第一地址信息,以便装置通过该第一地址信息下载升级包。
方式二:
向服务器发送下载第一基础服务可变程序器的升级包的获取请求;
接收服务器返回的升级包的第一地址信息;
根据第一地址信息获取软件包。
该种方式中,装置可以主动向服务器发送获取请求以获取第一基础服务可变程序的升级包,这样,当服务器接收到获取请求时,根据该获取请求向装置发送第一地址信息。
需指出的是,若服务器中存储的是第一基础服务可变程序的第二地址信息,则可以采用第一地址信息覆盖该第二地址信息。
具体地,该升级包可以存储在任何位置,例如服务器中或外置存储器中。更为具体地,当服务器接收到装置发送的获取请求后,识别是否有第一地址信息,若有,则向装置发送该第一地址信息,以便装置通过该第一地址信息下载升级包。
方式三:接收服务器发送的第一基础服务可变程序的升级包。
当服务器获取到升级包之后,主动向装置发送该升级包。
需指出的是,若服务器中预先存储的是第一基础服务可变程序的软件包,则可以采用该升级包覆盖软件包,以节省服务器的存储空间。
方式四:向服务器发送下载第一基础服务可变程序器的升级包的获取请求;
接收服务器根据获取请求返回的升级包。
该种方式中,装置可以主动向服务器发送获取请求以获取第一基础服务可变程序的升级包,这样,当服务器接收到获取请求时,根据该获取请求向装置发送升级包。
需指出的是,若服务器中预先存储的是第一基础服务可变程序的软件包,则可以采用该升级包覆盖软件包,以节省服务器存储空间。
步骤205,根据升级包对第一基础服务可变程序进行升级。
该步骤可以包括以下几种方式:
第一种方式:安装升级包,生成第二基础服务可变程序;
卸载第一基础服务可变程序。
该种方式中,装置在第一容器中生成一个完整的程序,即第二基础服务可变程序,并在安装成功后,卸载原先安装的第一基础服务可变程序,后续采用第二基础服务可变程序为用户服务,该第二基础服务可变程序的功能优于第一基础服务可变程序,为第一基础服务可变程序的升级版本,该处为了区别两者而将两个基础服务可变程序分别称为“第一基础服务可变程序”和“第二基础服务可变程序”,实际上均可以称为第一基础服务可变程序,只是一个为原始的第一基础服务可变程序,一个为功能优化后的第一基础服务可变程序。
第二种方式:安装升级包,以优化第一基础服务可变程序的服务功能。
该种方式对第一基础服务可变程序的服务功能进行优化,即对第一基础服务可变程序本身进行升级。这种方式无需卸载第一基础服务可变程序。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。另外,在升级第一容器中的基础服务可变程序时,仅需要对基础服务可变程序本身进行升级,并不会影响用户通过基础服务可变程序创建的任何信息。这样,也不会造成容器需要停机的问题,即容器不会被其它容器替代以为用户提供服务,使用该容器产生的服务内容会一直存在。此外,在对第一容器扩容时,例如通过镜像生成第二容器,由于服务器中具有的是最新的基础服务可变程序,通过镜像生成的更大容量的容器时,该更大容量的容器中也是最新的基础服务可变程序。
实施例三
本实施例提供一种生成第一容器的方法,该方法的执行主体为生成第一容器的装置,该生成第一容器的装置可以位于服务器中。
如图3所示,为根据本实施例的生成第一容器的方法的流程示意图。该方法包括:
步骤301,接收第一容器发送的获取第一基础服务可变程序的软件包的第三请求。
该第一容器是根据镜像生成的。镜像中包括基础服务固化程序,第一容器中也可以包括基础服务器程序。接下来,需要再第一容器中安装第一基础服务可变程序,此时,第一容器发送获取第一基础服务可变程序的软件包的第三请求。其中,第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,基础服务固化程序是根据镜像生成第一容器时生成的。
步骤302,根据第三请求向第一容器发送软件包的信息,以使第一容器根据软件包的信息获取软件包,并在第一容器内安装第一基础服务可变程序。
服务器接收到第三请求后,就向第一容器发送第一基础服务可变程序的软件包的信息,该第一基础服务可变程序的软件包的信息可以是第一基础服务可变程序的第一地址信息,也可以是软件包本身的数据信息。
具体地,该步骤可以包括以下几种方式:
第一种方式:根据第三请求向第一容器发送软件包的第二地址信息,以使第一容器根据第二地址信息获取软件包。
该步骤中,首先可以判断第一基础服务可变程序的软件包对应多个地址信息,若判断结果为是,则将最新的地址信息作为第二地址信息发送至第一容器。这样,第一容器根据该第二地址信息获取第一基础服务可变程序的软件包,并进行安装,以采用最新版本的第一基础服务可变程序为用户进行服务。
第二种方式:根据第三请求向第一容器发送软件包。
该步骤中,服务器可以首先根据第三请求判断第一基础服务可变程序是否对应多个软件包,若判断结果为是,则将最新的软件包发送至第一容器,以使第一容器安装该最新的软件包,采用最新版本的第一基础服务可变程序基于基础服务可变程序为用户提供服务。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
实施例四
本实施例对实施例三的生成第一容器的方法做进一步补充说明。本实施例中,主要对第一容器升级的方法做进一步补充说明。
本实施例中,在在根据第三请求向第一容器发送软件包之后,对第一容器中的第一基础服务可变程序进行升级的方法包括以下几种方式:
方式一:获取第一基础服务可变程序的升级包的第一地址信息;
向第一容器发送第一地址信息,以使第一容器根据第一地址信息获取升级包,并根据升级包对第一基础服务可变程序进行升级。
服务器获取到第一地址信息之后,就主动向第一容器发送第一地址信息,以便第一容器能够及时升级。
方式二:获取第一基础服务可变程序的升级包的第一地址信息;
接收第一容器发送的用于下载第一基础服务可变程序器的升级包的获取请求;
根据获取请求向第一容器发送第一地址信息,以使第一容器根据第一地址信息获取升级包,并根据升级包对第一基础服务可变程序进行升级。
服务器在获取到第一地址信息之后且在接收到装置发送的获取请求后,才将第一地址信息发送给服务器。装置发送获取请求的时间可以是按照预设周期发送,也可以是在某个特殊的时间发送,例如在凌晨2点发送,这样就可以实现在预设时间段内对第一基础服务可变程序进行升级,非常便利。
需指出的是,上述两种方式中,若服务器中存储有第一基础服务可变程序的软件包的第二地址信息,则采用第一地址信息覆盖第二地址信息,这样,后续服务器向第一容器发送第一基础服务可变程序的软件包的地址信息时,可以直接发送第一地址信息。
方式三:获取第一基础服务可变程序的升级包;
向第一容器发送升级包,以使第一容器根据升级包对第一基础服务可变程序进行升级。
服务器接收到第一基础服务可变程序的升级包之后,就主动向第一容器发送升级包,以便第一容器能够及时得到升级。
方式四:获取第一基础服务可变程序的升级包;
接收第一容器发送的用于下载第一基础服务可变程序器的升级包的获取请求;
根据获取请求向第一容器发送升级包,以使第一容器根据升级包对第一基础服务可变程序进行升级。
服务器在获取到升级包之后且在接收到装置发送的获取请求后,才将升级包发送给服务器。装置发送获取请求的时间可以是按照预设周期发送,也可以是在某个特殊的时间发送,例如在凌晨2点发送,这样就可以实现在预设时间段内对第一基础服务可变程序进行升级,非常便利。
需指出的是,方式三和方式四中,在获取第一基础服务可变程序的升级包之后,且在向第一容器发送升级包之前,还包括:
采用升级包覆盖第一基础服务可变程序的软件包。
这样,既可以节省服务器的存储空间,又可以避免由于有多个第一基础服务可变程序的软件包而导致的需判断的操作,简化流程。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。另外,在升级第一容器中的基础服务可变程序时,仅需要对基础服务可变程序本身进行升级,并不会应用用户通过基础服务可变程序创建的任何信息。
实施例五
本实施例提供一种生成容器的装置,用于执行实施例一的生成容器的方法,该装置可以设置在下述的第一容器中。
如图4所示,为根据本实施例的生成容器的装置的结构示意图。该生成容器的装置包括生成模块401、第一获取模块402和第一安装模块403。
其中,生成模块401用于根据镜像生成第一容器,镜像和第一容器中均包括基础服务固化程序;第一获取模块402用于通过服务器获取第一基础服务可变程序的软件包,第一基础服务可变程序基于基础服务固化程序为用户提供应用服务;第一安装模块403用于根据软件包在第一容器中安装第一基础服务可变程序。
可选地,第一获取模块401具体用于:
向服务器发送下载第一基础服务可变程序的软件包的第一请求;
接收服务器根据第一请求返回的软件包。
或者,可选地,第一获取模块401具体用于:
向服务器发送下载第一基础服务可变程序的软件包的第二请求;
接收服务器根据第二请求返回的软件包的第二地址信息;
根据第二地址信息获取软件包。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
实施例六
本实施例对实施例五的装置做进一步补充说明。
如图5所示,为根据本实施例的生成容器的装置的结构示意图。该装置除了包括如图4所示的生成模块401、第一获取模块402和第一安装模块403,还包括第二获取模块501和第二安装模块502。
其中,第二获取模块501用于通过服务器获取第一基础服务可变程序的升级包;第二安装模块502用于根据升级包对第一基础服务可变程序进行升级。
可选地,第二获取模块501可以具体用于以下几种方式:
方式一:接收服务器发送的第一基础服务可变程序的升级包的第一地址信息;
根据第一地址信息获取升级包。
方式二:向服务器发送下载第一基础服务可变程序器的升级包的获取请求;
接收服务器返回的升级包的第一地址信息;
根据第一地址信息获取软件包。
方式三:接收服务器发送的第一基础服务可变程序的升级包。
方式四:向服务器发送下载第一基础服务可变程序器的升级包的获取请求;
接收服务器根据获取请求返回的升级包。
可选地,第二安装模块502用于以下几种方式:
方式一:安装升级包,生成第二基础服务可变程序;
卸载第一基础服务可变程序。
方式二:安装升级包,以优化第一基础服务可变程序的服务功能。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。另外,在升级第一容器中的基础服务可变程序时,仅需要对基础服务可变程序本身进行升级,并不会影响用户通过基础服务可变程序创建的任何信息。这样,也不会造成容器需要停机的问题,即容器不会被其它容器替代以为用户提供服务,使用该容器产生的服务内容会一直存在。
实施例七
本实施例提供一种生成容器的装置,用于执行实施例一或实施例二的生成容器的方法,该装置可以设置在第一容器中。
如图6所示,为根据本实施例的装置的结构示意图。该装置包括处理器601和第一输入设备602。其中,处理器601用于根据镜像生成第一容器,镜像和第一容器中均包括基础服务固化程序;第一输入设备602用于通过服务器获取第一基础服务可变程序的软件包,第一基础服务可变程序基于基础服务固化程序为用户提供应用服务;处理器601还用于根据软件包在第一容器中安装第一基础服务可变程序。
可选地,第一输入设备602还用于通过服务器获取第一基础服务可变程序的升级包;
处理器601还用于根据升级包对第一基础服务可变程序进行升级。
可选的,上述处理器601例如可以为中央处理器(Central ProcessingUnit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器601通过有线或无线连接耦合到上述第一输入设备602。
可选的,上述第一输入设备602可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、收发信机中的至少一个。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。
关于本实施例中的装置,其中处理器601和第一输入设备602执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
实施例八
本实施例提供一种生成容器的装置,用于执行实施例三的生成容器的方法。该装置可以设置在服务器中。
如图7所示,为根据本实施例的生成容器的装置的结构示意图。该装置包括第一接收模块701和第一发送模块702。
其中,第一接收模块701用于接收第一容器发送的获取第一基础服务可变程序的软件包的第三请求;第一发送模块702用于根据第三请求向第一容器发送软件包的信息,以使第一容器根据软件包的信息获取软件包,并在第一容器内安装第一基础服务可变程序,第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,基础服务固化程序是根据镜像生成第一容器时生成的。
可选地,第一发送模块702具体用于根据第三请求向第一容器发送软件包的第二地址信息,以使第一容器根据第二地址信息获取软件包。
更为具体地,第三发送模块具体用于:
根据第三请求判断第一基础服务可变程序是否对应多个地址信息;
若判断结果为是,则将最新的地址信息作为第二地址信息发送至第一容器。
或者,可选地,第一发送模块702具体用于根据第三请求向第一容器发送软件包。
更为具体地,第一发送模块702具体用于:
根据第三请求判断第一基础服务可变程序是否对应多个软件包;
若判断结果为是,则将最新的软件包发送至第一容器。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
实施例九
本实施例对实施例八的生成容器的装置做进一步补充说明。
如图8所示,为根据本实施例的生成容器的装置的结构示意图。该装置800除了包括如图7所示的第一接收模块701和第一发送模块702,还包括第三获取模块801和第二发送模块802。
其中,第三获取模块801用于获取第一基础服务可变程序的升级包的第一地址信息;第二发送模块802用于向第一容器发送第一地址信息,以使第一容器根据第一地址信息获取升级包,并根据升级包对第一基础服务可变程序进行升级。
可选地,该装置800还可以包括第二接收模块803,该第二接收模块803用于接收第一容器发送的用于下载第一基础服务可变程序器的升级包的获取请求。相应地,第二发送模块802具体用于根据获取请求向第一容器发送第一地址信息。
可选地,本实施例的装置800还包括第一覆盖模块804,该第一覆盖模块804用于采用第一地址信息覆盖第二地址信息,第二地址信息为第一基础服务可变程序的软件包的地址信息。
关于本实施例中的装置800,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。另外,在升级第一容器中的基础服务可变程序时,仅需要对基础服务可变程序本身进行升级,并不会影响用户通过基础服务可变程序创建的任何信息。这样,也不会造成容器需要停机的问题,即容器不会被其它容器替代以为用户提供服务,使用该容器产生的服务内容会一直存在。
实施例十
本实施例对实施例八的生成容器的装置做进一步补充说明。
如图9所示,为根据本实施例的生成容器的装置的结构示意图。该装置900除了包括如图7所示的第一接收模块701和第一发送模块702,还包括第四获取模块901和第三发送模块902。
其中,第四获取模块901用于获取第一基础服务可变程序的升级包;第三发送模块902用于向第一容器发送升级包,以使第一容器根据升级包对第一基础服务可变程序进行升级。
可选地,本实施例的装置900还包括第三接收模块903,该第三接收模块903用于接收第一容器发送的用于下载第一基础服务可变程序器的升级包的获取请求;相应地,第三发送模块902具体用于根据获取请求向第一容器发送升级包。
可选地,本实施例的装置900还包括第二覆盖模块904,该第二覆盖模块904用于采用升级包覆盖第一基础服务可变程序的软件包。
关于本实施例中的装置900,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。另外,在升级第一容器中的基础服务可变程序时,仅需要对基础服务可变程序本身进行升级,并不会影响用户通过基础服务可变程序创建的任何信息。这样,也不会造成容器需要停机的问题,即容器不会被其它容器替代以为用户提供服务,使用该容器产生的服务内容会一直存在。
实施例十一
本实施例提供一种生成容器的装置,该装置用于执行实施例三或实施例四的生成容器的方法。该装置可以设置在服务器中。
如图10所示,为根据本实施例的生成容器的装置的结构示意图。该装置包括第二输入设备1001和输出设备1002。
其中,第二输入设备1001用于接收第一容器发送的获取第一基础服务可变程序的软件包的第三请求;输出设备1002用于根据第三请求向第一容器发送软件包的信息,以使第一容器根据软件包的信息获取软件包,并在第一容器内安装第一基础服务可变程序,第一基础服务可变程序基于基础服务固化程序为用户提供应用服务,基础服务固化程序是根据镜像生成第一容器时生成的。
可选地,第二输入设备1001还用于获取第一基础服务可变程序的升级包的第一地址信息;输出设备1002还用于向第一容器发送第一地址信息,以使第一容器根据第一地址信息获取升级包,并根据升级包对第一基础服务可变程序进行升级。
关于本实施例中的装置,其中第二输入设备1001和输出设备1002执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本实施例,通过将基础服务固化程序和基础服务可变程序分开,即将基础服务固化程序设置在镜像中,以在创建第一容器时在第一容器中也生成基础服务固化程序,然后通过服务器获取基础服务可变程序的软件包并安装,这样,镜像中不会存在需维护基础服务固化程序和基础服务可变程序的维护信息,因此,生成能够提供应用服务的第一容器的速度会较快,而且第一容器的空间不会被维护信息所占用。此外,装置可以为第一容器选择所下载的基础服务可变程序,这样可以根据实际需要设置个性化的第一容器,进而能够进一步节省具有基础服务可变程序的第一容器的生成时间。
实施例十二
本实施例的生成容器的系统包括前述任意实施例的生成容器的装置和镜像,即包括前述任意实施例的包括生成容器的装置的容器和服务器。
下面采用具体举例的方式对上述本实施例的生成容器的系统做具体说明。
如图11所示,为本实施例的生成容器的系统的结构示意图。本实施例中,在终端1110中设置镜像1101,还可以设置获取应用,该获取应用例如为一Entrypoint模块11011。
本实施例的终端1110可以接收服务器发送的第一基础服务可变程序的升级包。这样,终端1110可以安装升级包,生成第二基础服务可变程序,并卸载第一基础服务可变程序,或者安装升级包,以优化第一基础服务可变程序的服务功能。
首先,终端1110根据镜像1101生成第一容器1102,镜像1101中包括基础服务固化程序,因此,第一容器1102中也会包括有基础服务固化程序,也会生成Entrypoint模块11021,该Entrypoint模块11021具体执行后续的为第一容器1102获取第一基础服务可变程序的软件包并进行安装的操作。由于Entrypoint模块11021设置在第一容器1102中,因此Entrypoint模块11021的操作也就是第一容器1102的操作。
接下来,第一容器1102向服务器1103发送获取第一基础服务可变程序的软件包的获取请求,服务器1103接收到该获取请求后,记录第一容器1102的标识,并向第一容器1102发送第一基础服务可变程序的软件包的第二地址信息,第一容器1102接收到该第二地址信息后,通过该第二地址信息下载第一基础服务可变程序,并安装该第一基础服务可变程序11022,以基于第一容器1102内的基础服务固化程序采用第一基础服务可变程序11022为用户提供服务功能。
一段时间后,服务器1103接收到第一基础服务可变程序的升级包的第一地址信息,则可以根据预先的记录查询有哪些容器安装了第一基础服务可变程序,当识别出第一容器1102安装了第一基础服务可变程序,则可以主动向第一容器1102发送该第一地址信息,第一容器1102接收到该第一地址信息后,下载升级包,并进行安装,生成第二基础服务可变程序,第二基础服务可变程序为功能优化后的第一基础服务可变程序,然后卸载第一基础服务可变程序,并基于第一容器1102内的基础服务固化程序采用第二基础服务可变程序为用户提供服务功能。
此外,第一容器1102接收到第一地址信息后,采用第一地址信息覆盖第二地址信息。
接下来,可以需根据实际需要创建一个第二容器1104,该第二容器的容量大于第一容器1102。具体地,根据镜像1101生成第二容器1104,具体如何根据镜像创建第二容器1104属于现有技术,在此不再赘述。第二容器1104中包括基础服务固化程序,也会生成Entrypoint模块11041。
接下来,第二容器1104通过服务器1103获取第一基础服务可变程序的软件包。由于服务器1103中包括的是最新版本的第一基础服务可变程序的第一地址信息,因此,第二容器1104下载第一基础服务可变程序的软件包并安装之后,就可以采用最新版本的第一基础服务可变程序为用户提供服务功能。这样,就可以避免基础服务可变程序位于镜像中而造成的新生成的第一容器需要对安装后的基础服务可变程序升级的操作,节省操作步骤。
本发明还提供一种终端,包括实施例五至实施例七中任意实施例的生成容器的装置。
本发明还提供一种服务器,包括实施例八至实施例十一中任意实施例的生成容器的装置。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。