CN109309693B - 基于docker的多服务系统、部署方法及装置、设备及存储介质 - Google Patents

基于docker的多服务系统、部署方法及装置、设备及存储介质 Download PDF

Info

Publication number
CN109309693B
CN109309693B CN201710620009.6A CN201710620009A CN109309693B CN 109309693 B CN109309693 B CN 109309693B CN 201710620009 A CN201710620009 A CN 201710620009A CN 109309693 B CN109309693 B CN 109309693B
Authority
CN
China
Prior art keywords
service
mirror image
environment
application
docker
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.)
Active
Application number
CN201710620009.6A
Other languages
English (en)
Other versions
CN109309693A (zh
Inventor
龚澄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tenpay Payment Technology Co Ltd
Original Assignee
Tenpay Payment Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tenpay Payment Technology Co Ltd filed Critical Tenpay Payment Technology Co Ltd
Priority to CN201710620009.6A priority Critical patent/CN109309693B/zh
Publication of CN109309693A publication Critical patent/CN109309693A/zh
Application granted granted Critical
Publication of CN109309693B publication Critical patent/CN109309693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Abstract

一种基于docker的多服务部署方法及装置、设备及存储介质,获取各应用服务分别对应的项目代码;获取各应用服务分别对应的运行环境基于docker的环境镜像,并获取各应用服务的代理服务基于docker的代理镜像;运行环境镜像,形成与各环境镜像对应且相互隔离的服务容器,并将各应用服务对应的项目代码运行于应用服务对应的服务容器之中;运行代理镜像,形成与代理镜像对应的代理容器,并启动代理容器;代理容器用于实现代理服务,代理服务通过统一的端口接收服务请求,根据服务请求中的访问地址,将服务请求通过访问地址对应的端口分发至服务容器。本发明还提供一种基于docker的多服务系统。上述方法、装置、设备、存储介质及系统,降低了各应用服务间的耦合性。

Description

基于docker的多服务系统、部署方法及装置、设备及存储介质
技术领域
本发明涉及服务部署技术领域,特别是涉及一种基于docker的多服务系统、部署方法及装置、设备及存储介质。
背景技术
传统的服务部署方式,首先需要运行运维提供的部署脚本来安装服务器环境,然后通过人工修改服务器配置、部署代码,最终实现应用服务的迁移部署。在多个应用服务部署于同一服务器上时,各个应用服务之间共用同一个服务器资源,如服务1需要安装一个新的软件包,就必须安装在服务器中,对于服务2 和服务3,这个软件包可能是他们并不需要的。但服务1、2、3均运行于服务1、 2、3所部署于的服务器所运行的环境之下。
传统的多服务部署方法,由于在部署成功后各个应用服务之间共用一个服务器环境,可能会因为其中某一个应用服务运行崩溃导致另外一个应用服务的不可用。因此,各应用服务间耦合性高。
发明内容
基于此,有必要针对各应用服务间耦合性高的问题,提供一种基于docker 的多服务系统、部署方法及装置、设备及存储介质。
一种基于docker的多服务部署方法,包括:
获取各应用服务分别对应的项目代码;
获取各所述应用服务分别对应的运行环境基于docker的环境镜像,并获取所述各所述应用服务的代理服务基于docker的代理镜像;
运行所述环境镜像,形成与各所述环境镜像对应且相互隔离的服务容器,并将各所述应用服务对应的所述项目代码运行于所述应用服务对应的所述服务容器之中;
运行所述代理镜像,形成与所述代理镜像对应的代理容器,并启动所述代理容器;所述代理容器用于实现所述代理服务,所述代理服务通过统一的端口接收服务请求,根据所述服务请求中的访问地址,将所述服务请求通过所述访问地址对应的端口分发至所述服务容器。
一种基于docker的多服务部署装置,包括:
代码获取模块,用于获取各应用服务分别对应的项目代码;
镜像获取模块,用于获取各所述应用服务分别对应的运行环境基于docker 的环境镜像,并获取所述各所述应用服务的代理服务基于docker的代理镜像;
应用运行模块,用于运行所述环境镜像,形成与各所述环境镜像对应且相互隔离的服务容器,并将各所述应用服务对应的所述项目代码运行于所述应用服务对应的所述服务容器之中;
代理运行模块,用于运行所述代理镜像,形成与所述代理镜像对应的代理容器;所述代理容器用于实现所述代理服务,所述代理服务通过统一的端口接收服务请求,根据所述服务请求中的访问地址,将所述服务请求通过所述访问地址对应的端口分发至所述服务容器。
一种基于docker的多服务系统,包括部署于同一服务器的多个应用服务,以及与所述应用服务部署于同一服务器的代理服务;
各所述应用服务通过项目代码运行于对应且相互隔离的服务容器实现;所述服务容器通过运行对应的所述环境镜像形成;所述环境镜像为所述应用服务对应的运行环境基于docker的镜像;
所述代理服务用于通过统一的端口接收服务请求,根据所述服务请求中的访问地址,将所述服务请求通过所述访问地址对应的端口分发至所述服务容器;
一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的基于docker的多服务部署方法的步骤。
一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现上述的基于docker的多服务部署方法的步骤。
基于上述方法、装置、计算机设备及存储介质可以得到上述的基于docker 的多服务系统。由于该基于docker的多服务系统,包括部署于同一服务器的多个应用服务,以及与所述应用服务部署于同一服务器的代理服务;各所述应用服务通过项目代码运行于对应且相互隔离的服务容器实现;所述服务容器通过运行对应的所述环境镜像形成;所述环境镜像为所述应用服务对应的运行环境基于docker的镜像;所述代理服务用于通过统一的端口接收服务请求,根据所述服务请求中的访问地址,将所述服务请求通过所述访问地址对应的端口分发至所述服务容器。因此,上述方法、装置、计算机设备、存储介质及基于docker的多服务系统,可以在一台服务器部署多个相互隔离的应用服务,同时各应用服务无需采用共用的配置,尤其是无需采用统一的端口访问不同的服务,而是根据服务请求中的访问地址,通过对应的端口分发至应用服务所对应的服务容器,可以进一步实现各应用服务的相互隔离,从而降低了各应用服务间的耦合性。
附图说明
图1为一实施方式的基于docker的多服务部署方法及装置的应用环境示意图;
图2为图1的服务器的内部结构示意图;
图3为一实施方式的基于docker的多服务部署方法的流程图;
图4为一示例中传统部署方式的多服务系统的架构图;
图5为传统部署方式的多服务系统中的服务与服务器的关系图;
图6为一示例中图3的基于docker的多服务部署方法的多服务系统的架构图;
图7为一示例中图3的基于docker的多服务部署方法的多服务系统中的服务与服务器的关系图;
图8为一示例中图3的基于docker的多服务部署方法的各应用服务对应的环境镜像的结构图;
图9为另一实施方式的基于docker的多服务部署方法的流程图;
图10为图9的基于docker的多服务部署方法中检测结果的示意图;
图11为一实施方式的基于docker的多服务部署装置的结构图;
图12为另一实施方式的基于docker的多服务部署装置的结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1为一实施方式提供的基于docker的多服务部署方法的应用环境示意图。如图1所示,该应用环境包括终端110、网络120以及服务器130。终端110与服务器130通过网络120通信连接。终端110通过网络120向服务器130发送服务请求。该终端110可以是手机、平板电脑或者个人数字助理或穿戴式设备等。服务器130 可以为巨型机、大型机、小型机或工作站。在本实施例中,基于docker的多服务部署方法运行在服务器130中。
图2为一个实施例中的服务器130的内部结构示意图。如图2所示,服务器130 包括通过系统总线连接的处理器、存储介质、内存储器及网络接口。其中,服务器130的存储介质存储有操作系统以及一种基于docker的多服务部署装置的计算机应用程序,该基于docker的多服务部署装置的计算机应用程序被处理器执行时,实现一种基于docker的多服务部署方法。该处理器用于提供计算和控制能力,支撑整个服务器130的运行。服务器130的内存储器为存储介质中的基于docker的多服务部署装置运行提供环境,该内存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种基于docker 的多服务部署方法。服务器130的网络接口用于与终端110进行网络通信,如接收终端110通过网络120发送的服务请求等。本领域技术人员可以理解,图2中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
请参照图3,在一种实施方式中,提供一种基于docker的多服务部署方法,包括:
S320:获取各应用服务分别对应的项目代码。
应用服务的数量至少为2。应用服务的项目代码可以通过SCP命令(secure copy,安全拷贝,用于在Linux下进行远程拷贝文件的命令)、SVN(Subversion,一种开放源代码的版本控制系统)的checkout(检出)命令、mount命令(将文件挂接到一个空文件夹下的命令)或其它命令拷贝至服务器,从而获取到各应用服务分别对应的项目代码。
S330:获取各应用服务分别对应的运行环境基于docker的环境镜像,并获取各应用服务的代理服务基于docker的代理镜像。
各应用服务分别对应的环境镜像及代理镜像可以预先存储在预设的存储路径中,该环境镜像为对应的应用的运行环境基于docker的镜像,该代理镜像为各应用服务的代理服务基于docker的镜像。需要说明的是,该预设的存储路径为服务器内部镜像源的路径,即环境镜像及代理镜像存储在内部镜像源中,从而,可以快速地获取环境镜像及代理镜像。在一个应用示例中,可以在不到一分钟的时间内获取好各环境镜像及代理镜像。
S350:运行环境镜像,形成与各环境镜像对应且相互隔离的服务容器,并将各应用服务对应的项目代码运行于应用服务对应的服务容器之中。
由于环境镜像是基于docker的镜像,因此,运行各环境镜像可以形成相互间隔离的多个服务容器。服务容器的数量与环境镜像的数量对应,如,服务容器的数量与环境镜像的数量可以相等。
可以通过一行命令语句实现:运行环境镜像,形成与各环境镜像对应且相互隔离的服务容器,并将各应用服务对应的项目代码运行于应用服务对应的服务容器之中,从而通过该服务容器提供应用服务。
S360:运行代理镜像,形成与代理镜像对应的代理容器,并启动代理容器。
代理镜像包括代理服务的项目代码及运行环境。可以通过同一行命令语句在运行环境镜像之后,运行代理镜像,形成与代理镜像对应的代理容器,并启动代理容器。
需要说明的是,该代理容器用于实现代理服务,代理服务通过统一的端口接收服务请求,根据服务请求中的访问地址,将服务请求通过访问地址对应的端口分发至服务容器。
基于上述方法可以得到基于docker的多服务系统,该系统包括部署于同一服务器的多个应用服务,以及与应用服务部署于同一服务器的代理服务;各应用服务通过项目代码运行于对应且相互隔离的服务容器实现;服务容器通过运行对应的环境镜像形成;环境镜像为应用服务对应的运行环境基于docker的镜像;代理服务用于通过统一的端口接收服务请求,根据服务请求中的访问地址,将服务请求通过访问地址对应的端口分发至服务容器。
基于上述方法可以在一台服务器部署多个相互隔离的应用服务,同时各应用服务无需采用共用的配置,尤其是无需采用统一的端口访问不同的服务,而是根据服务请求中的访问地址,通过对应的端口分发至应用服务所对应的服务容器,可进一步实现各应用服务的相互隔离。从而降低了各应用服务间的耦合性。
在其中一个具体应用实例中,以各应用服务分别为Legos、Mojo、Vtools、及XBoss为例,进行说明。其中,Legos可以为部门内前端开发平台,负责前端项目的管理、编译、打包发布;Mojo可以为部门内H5运营活动的开发平台,能快速制作H5活动;Vtools可以为部门内运营数据管理平台;XBoss可以为部门内管理后台快速生成工具。
以传统方式部署时,多服务系统的架构图可以如图4所示。由于应用服务 Legos、Mojo、Vtools及XBoss的服务类型包括开发服务和运营服务,其中,Legos 及Mojo属于开发服务,而Vtools及XBoss属于运营服务,因此,传统方式的多服务系统需要使用两台服务器,分别是平台开发机和平台运营机,才能防止平台开发机出现故障会导致平台运营机的不可用,以开发服务和运营服务相互影响。两台服务器共用同一个NFS服务器提供文件挂载服务、同一个MySQL服务器提供数据库服务以及同一个EOS服务器提供部门内文件发布服务。
还需说明的是,以传统部署后,服务与服务器的关系图如图5所示。一个服务器上可以部署N个相同服务类型的服务,各个服务之间共用同一个服务器资源,如服务1需要安装一个新的软件包,就必须安装在服务器中,然而相对于服务2和服务3而言,这个软件包可能是他们并不需要的。由于各应用服务都运行在同一个服务器环境当中,可能会因为其中某一个应用服务运行崩溃导致另外一个应用服务的不可用。因此,各应用服务间耦合性高。
以上述基于docker的多服务部署方法部署时,多服务系统的架构图可以如图6所示。四个应用服务部署于同一台服务器上,每个应用服务所占用的端口号不同,终端不能直接访问各应用服务,而是通过用于对不同应用服务进行分发的代理服务,间接访问各应用服务的,在图6中,代理服务表示为Proxy。终端可以通过默认端口80访问代理服务,进而通过该代理服务将服务根据服务请求中的访问地址,将服务请求通过服务请求对应的端口分发至各应用服务。如,请求Legos的服务请求对应的端口号可以为8000,请求Mojo的服务请求对应的端口号可以为8001,请求Vtools的服务请求对应的端口号可以为8002,请求XBoss的服务请求对应的端口号可以为8003。四个应用服务共用同一个NFS服务器提供文件挂载服务、同一个MySQL服务器提供数据库服务以及同一个EOS服务器提供部门内文件发布服务。
还需说明的是,以上述基于docker的多服务部署方法部署后,服务与服务器的关系图如图7所示。无论服务1、2、3是否为相同服务类型的应用服务,均基于docker,因此各个应用服务之间相互隔离,可以部署于同一台服务器上,而不同类型的应用服务之间并不会相互影响,各应用服务间的耦合性低。可以理解地,各应用服务的运行环境也是相互隔离的,不会因为某一个应用服务运行崩溃而导致另外一个应用服务的不可用。
在其中一实施方式中,环境镜像包括基础镜像及个性化镜像。基础镜像为各应用服务对应的运行环境中相同项所形成的镜像,个性化镜像为各应用服务对应的运行环境中相异项所形成的镜像。具体地,运行环境包括安装软件及配置项。
在其中一个具体实施例中,继续以各应用服务分别为Legos、Vtools、Mojo 及XBoss为例,进行说明。各应用服务对应的环境镜像的结构如图8所示。图中, tc_base为基础镜像,即Legos、Vtools、Mojo及XBoss的运行环境中相同项所形成的镜像;Legos的环境镜像包括基础镜像tc_base及Legos的个性化镜像legos; Vtools的环境镜像包括基础镜像tc_base及Vtool的个性化镜像vtools;Mojo的环境镜像包括基础镜像tc_base及Mojo的个性化镜像mojo;XBoss的环境镜像包括基础镜像tc_base及XBoss的个性化镜像xboss。
在其中一个具体实施例中,镜像的制作过程很简单,类似于写一份固定格式的镜像代码,如同文档一样,然后镜像代码通过编译就可以生成镜像。
以图8 中的基础镜像tc_base和Legos的个性化镜像legos为例:
基础镜像tc_base的伪代码可以为:
基于:预设系统
安装:软件A,软件B
配置:配置1,配置2
启动:软件A
Legos的个性化镜像legos的伪代码可以为:
基于:tc_base
安装:软件C
配置:配置3
启动:软件C
请参阅图9,在其中一实施方式中,运行环境镜像的步骤之前,即步骤S350 之前,还包括:
S340:检测各应用服务对应的权限是否正常。若检测结果为正常,执行运行环境镜像的步骤。
各应用服务对应的权限为应用服务运行时会使用到的权限。如,可以为NFS(Network File System,网络文件系统)挂载权限、MySQL(一种关系型数据库)网络策略与DB(数据库)访问权限、EOS(提供部门内文件发布的服务)应用程序接口调用权限或/及TOF(提供部门内开发框架和接口资源包的服务)接入权限。
通常情况下,服务器需要申请各应用服务对应的权限。如果因为权限没有开通,那么服务即便部署好了也无法使用。因此在运行环境镜像的步骤之前,可以先检测权限是否正常。若检测结果为正常,则说明可以正常部署。否则,可以暂不部署,等到权限正常之后再进行部署;也可以抛出异常后结束部署。如此,保证各应用服务部署好之后,便可以正常运行。
在其中一个具体实施例中,可以通过运行检测脚本,检测各应用服务对应的权限是否正常。检测结果可以以如图10所示的形式进行显示,具体显示某一项权限的情况,或某一权限是否正常。
请继续参阅图9,在其中一实施方式中或进一步地,运行环境镜像的步骤之前,即步骤S350之前,还包括:
S310:申请各应用服务所需的权限。
如此,保证各应用服务部署好之后,便可以正常使用。
请参阅图11,本发明还提供一种与上述基于docker的多服务部署方法对应的基于docker的多服务部署装置,包括:
代码获取模块1020,用于获取各应用服务分别对应的项目代码。
镜像获取模块1030,用于获取各应用服务分别对应的运行环境基于docker 的环境镜像,并获取各应用服务的代理服务基于docker的代理镜像。
应用运行模块1050,用于运行环境镜像,形成与各环境镜像对应且相互隔离的服务容器,并将各应用服务对应的项目代码运行于应用服务对应的服务容器之中。
代理运行模块1060,用于运行代理镜像,形成与代理镜像对应的代理容器。代理容器用于实现代理服务,代理服务通过统一的端口接收服务请求,根据服务请求中的访问地址,将服务请求通过访问地址对应的端口分发至服务容器。
基于上述装置可以在一台服务器部署多个相互隔离的应用服务,同时各应用服务无需采用共用的配置,尤其是无需采用统一的端口访问不同的服务,而是根据服务请求中的访问地址,通过对应的端口分发至应用服务所对应的服务容器,可进一步实现各应用服务的相互隔离。从而,降低了各应用服务间的耦合性。
在其中一实施方式中,环境镜像包括基础镜像及个性化镜像;基础镜像为各应用服务对应的运行环境中相同项所形成的镜像,个性化镜像为各应用服务对应的运行环境中相异项所形成的镜像;运行环境包括安装软件及配置项。
请参阅图12,在其中一实施方式中,还包括权限检测模块1040。
权限检测模块1040,用于检测各应用服务对应的权限是否正常。
应用运行模块1050,用于若权限检测模块的检测结果为正常,运行环境镜像,形成与各环境镜像对应且相互隔离的服务容器,并将各应用服务对应的项目代码运行于应用服务对应的服务容器之中。
进一步地,还包括:权限申请模块1010,用于申请各应用服务所需的权限。此时,权限检测模块1040,用于在权限申请模块1010申请各应用服务所需的权限之后,检测各应用服务对应的权限是否正常。
本发明还提供一种基于docker的多服务系统,该系统可以由上述基于docker的多服务部署方法或装置而得到。该,基于docker的多服务系统包括部署于同一服务器的多个应用服务,以及与应用服务部署于同一服务器的代理服务;
各应用服务通过项目代码运行于对应且相互隔离的服务容器实现;服务容器通过运行对应的环境镜像形成;环境镜像为应用服务对应的运行环境基于 docker的镜像;
代理服务用于通过统一的端口接收服务请求,根据服务请求中的访问地址,将服务请求通过访问地址对应的端口分发至服务容器。
由于该基于docker的多服务系统,可以在一台服务器部署多个相互隔离的应用服务,同时各应用服务无需采用共用的配置,尤其是无需采用统一的端口访问不同的服务,而是根据服务请求中的访问地址,通过对应的端口分发至应用服务所对应的服务容器,可以进一步实现各应用服务的相互隔离。从而,降低了各应用服务间的耦合性。
在其中一实施方式中,环境镜像包括基础镜像及个性化镜像;基础镜像为各应用服务对应的运行环境中相同项所形成的镜像,个性化镜像为各应用服务对应的运行环境中相异项所形成的镜像;运行环境包括安装软件及配置项。
上述装置及系统均与上述基于docker的多服务部署方法对应,对于装置及系统中与上述方法对应的技术特征,在此不作赘述。
本发明还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意一项的基于docker的多服务部署方法的步骤。
本发明还提供一种计算机存储介质,计算机存储介质上存储有计算机程序,计算机程序被处理器执行时,实现上述任意一项的基于docker的多服务部署方法的步骤。
还需说明的是,上述方法、装置、系统、计算机设备及存储介质还可以得到的有益效果包括:1、不再依赖于服务器环境,可以是任意的可以运行Docker 的服务器环境;2、配置项仅需维护一份,存在于服务本身,而且是已经配置在环境镜像中的,而无需根据应用服务类型为开发服务或运营服务,分别进行维护。3、由于部署不再需要安装软件的时间,仅需要获取环境镜像和代理镜像的时间,而传统部署方式中安装软件的时间往往占据部署时间的很大一部分,因此,具有部署时间短的效果。4、部署方法及装置无人工流程,部署出来的应用服务是唯一的,而不会因为人工参与而导致部署结果不同。5、由于上述方法、装置、系统、计算机设备及存储介质是基于docker的,一个容器可以对应一个服务,服务里包含环境,不同服务之间相互隔离、互不干扰,添加一个服务就是再启动一个容器,删除一个服务就是再删除一个容器,因此,在后续添加或删除服务时,操作简单。6、使用基于docker的镜像可以对运行环境进行版本管理,若因为一些环境改动导致不可用,可以直接轻松回退到上一个可用版本。7、基于docker的镜像可以在本地完美克隆线上环境,使本地环境与线上环境完全一致。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM) 等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于docker的多服务部署方法,其特征在于,包括:
获取部署于同一服务器上各应用服务分别对应的项目代码;
获取各所述应用服务分别对应的运行环境基于docker的环境镜像,并获取所述各所述应用服务的代理服务基于docker的代理镜像;
运行所述环境镜像,形成与各所述环境镜像对应且相互隔离的服务容器,并将各所述应用服务对应的所述项目代码运行于所述应用服务对应的所述服务容器之中;
运行所述代理镜像,形成与所述代理镜像对应的代理容器,并启动所述代理容器;所述代理容器用于实现所述代理服务,所述代理服务通过统一的端口接收服务请求,根据所述服务请求中的访问地址,将所述服务请求通过所述访问地址对应的应用服务端口分发至所述服务容器。
2.根据权利要求1所述的基于docker的多服务部署方法,其特征在于:所述环境镜像包括基础镜像及个性化镜像;所述基础镜像为各所述应用服务对应的所述运行环境中相同项所形成的镜像,所述个性化镜像为各所述应用服务对应的所述运行环境中相异项所形成的镜像;所述运行环境包括安装软件及配置项。
3.根据权利要求1所述的基于docker的多服务部署方法,其特征在于,所述运行所述环境镜像的步骤之前,还包括:
检测各所述应用服务对应的权限是否正常,若检测结果为正常,执行所述运行所述环境镜像的步骤。
4.一种基于docker的多服务部署装置,其特征在于,包括:
代码获取模块,用于获取部署于同一服务器上各应用服务分别对应的项目代码;
镜像获取模块,用于获取各所述应用服务分别对应的运行环境基于docker的环境镜像,并获取所述各所述应用服务的代理服务基于docker的代理镜像;
应用运行模块,用于运行所述环境镜像,形成与各所述环境镜像对应且相互隔离的服务容器,并将各所述应用服务对应的所述项目代码运行于所述应用服务对应的所述服务容器之中;
代理运行模块,用于运行所述代理镜像,形成与所述代理镜像对应的代理容器;所述代理容器用于实现所述代理服务,所述代理服务通过统一的端口接收服务请求,根据所述服务请求中的访问地址,将所述服务请求通过所述访问地址对应的应用服务端口分发至所述服务容器。
5.根据权利要求4所述的基于docker的多服务部署装置,其特征在于:所述环境镜像包括基础镜像及个性化镜像;所述基础镜像为各所述应用服务对应的所述运行环境中相同项所形成的镜像,所述个性化镜像为各所述应用服务对应的所述运行环境中相异项所形成的镜像;所述运行环境包括安装软件及配置项。
6.根据权利要求4所述的基于docker的多服务部署装置,其特征在于,还包括权限检测模块;
所述权限检测模块,用于检测各所述应用服务对应的权限是否正常;
所述应用运行模块,用于若所述权限检测模块的检测结果为正常,运行所述环境镜像,形成与各所述环境镜像对应且相互隔离的服务容器,并将各所述应用服务对应的所述项目代码运行于所述应用服务对应的所述服务容器之中。
7.一种基于docker的多服务系统,其特征在于,包括部署于同一服务器的多个应用服务,以及与所述应用服务部署于同一服务器的代理服务;
各所述应用服务通过项目代码运行于对应且相互隔离的服务容器实现;所述服务容器通过运行对应的环境镜像形成;所述环境镜像为所述应用服务对应的运行环境基于docker的镜像;
所述代理服务用于通过统一的端口接收服务请求,根据所述服务请求中的访问地址,将所述服务请求通过所述访问地址对应的应用服务端口分发至所述服务容器。
8.根据权利要求7所述的基于docker的多服务系统,其特征在于:所述环境镜像包括基础镜像及个性化镜像;所述基础镜像为各所述应用服务对应的所述运行环境中相同项所形成的镜像,所述个性化镜像为各所述应用服务对应的所述运行环境中相异项所形成的镜像;所述运行环境包括安装软件及配置项。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-3任意一项所述的基于docker的多服务部署方法的步骤。
10.一种计算机存储介质,所述计算机存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-3任意一项所述的基于docker的多服务部署方法的步骤。
CN201710620009.6A 2017-07-26 2017-07-26 基于docker的多服务系统、部署方法及装置、设备及存储介质 Active CN109309693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710620009.6A CN109309693B (zh) 2017-07-26 2017-07-26 基于docker的多服务系统、部署方法及装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710620009.6A CN109309693B (zh) 2017-07-26 2017-07-26 基于docker的多服务系统、部署方法及装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN109309693A CN109309693A (zh) 2019-02-05
CN109309693B true CN109309693B (zh) 2022-04-29

Family

ID=65202128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710620009.6A Active CN109309693B (zh) 2017-07-26 2017-07-26 基于docker的多服务系统、部署方法及装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN109309693B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110022294A (zh) * 2019-02-27 2019-07-16 广州虎牙信息科技有限公司 一种代理服务器、Docker系统及其权限管理方法、存储介质
CN111026414B (zh) * 2019-12-12 2023-09-08 杭州安恒信息技术股份有限公司 一种基于kubernetes的HDP平台部署方法
CN112947948B (zh) * 2020-01-17 2024-03-12 深圳市明源云科技有限公司 应用服务的部署方法及装置
CN112070246A (zh) * 2020-08-26 2020-12-11 上海洪朴信息科技有限公司 一种光伏产品缺陷检测算法部署系统
CN112394907A (zh) * 2020-10-15 2021-02-23 北京仿真中心 基于容器的交付系统构建方法、应用交付方法和交付系统
CN112631614B (zh) * 2020-12-30 2023-10-03 平安证券股份有限公司 应用部署方法、装置、计算机设备和存储介质
CN113542431A (zh) * 2021-08-02 2021-10-22 北京百度网讯科技有限公司 信息处理方法、装置、电子设备及存储介质
CN114070883B (zh) * 2021-11-12 2023-03-24 腾讯科技(深圳)有限公司 测试资源访问方法、装置、电子设备及存储介质
CN114979212A (zh) * 2022-05-23 2022-08-30 京东方科技集团股份有限公司 设备接入物联网平台的代理服务构建方法、装置和系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468362A (zh) * 2015-11-17 2016-04-06 广州杰赛科技股份有限公司 应用部署方法和云计算系统
CN105550130A (zh) * 2015-12-14 2016-05-04 中电科华云信息技术有限公司 基于容器的应用环境动态编排的方法及其应用系统
CN105867955A (zh) * 2015-09-18 2016-08-17 乐视云计算有限公司 一种应用程序部署系统及部署方法
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN106407101A (zh) * 2015-07-31 2017-02-15 三亚中兴软件有限责任公司 基于lxc的持续集成方法及装置
WO2017025203A1 (en) * 2015-08-13 2017-02-16 Telefonaktiebolaget Lm Ericsson (Publ) Managing lifecycle of a software container
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN106790595A (zh) * 2016-12-29 2017-05-31 上海理想信息产业(集团)有限公司 一种Docker容器主动负载均衡装置及方法
CN106775702A (zh) * 2016-12-09 2017-05-31 中电科华云信息技术有限公司 基于容器的服务内部接口发现方法
WO2017106726A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170085419A1 (en) * 2015-09-18 2017-03-23 Le Holdings (Beijing) Co., Ltd. System and method for deploying an application
US11182140B2 (en) * 2015-11-25 2021-11-23 Red Hat, Inc. Active representation of a composite application

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106407101A (zh) * 2015-07-31 2017-02-15 三亚中兴软件有限责任公司 基于lxc的持续集成方法及装置
WO2017025203A1 (en) * 2015-08-13 2017-02-16 Telefonaktiebolaget Lm Ericsson (Publ) Managing lifecycle of a software container
CN105867955A (zh) * 2015-09-18 2016-08-17 乐视云计算有限公司 一种应用程序部署系统及部署方法
CN105468362A (zh) * 2015-11-17 2016-04-06 广州杰赛科技股份有限公司 应用部署方法和云计算系统
CN105550130A (zh) * 2015-12-14 2016-05-04 中电科华云信息技术有限公司 基于容器的应用环境动态编排的方法及其应用系统
WO2017106726A1 (en) * 2015-12-18 2017-06-22 Amazon Technologies, Inc. Software container registry service
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN106775702A (zh) * 2016-12-09 2017-05-31 中电科华云信息技术有限公司 基于容器的服务内部接口发现方法
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN106790595A (zh) * 2016-12-29 2017-05-31 上海理想信息产业(集团)有限公司 一种Docker容器主动负载均衡装置及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Software Provisioning Inside a Secure Environment as Docker Containers Using Stroll File-System";Abdulrahman Azab,Diana Domanska;《2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid)》;20160721;第674-683页 *
"一种基于Docker的开发者服务平台设计";刘琳羽,南凯;《科研信息化技术与应用》;20150920;第6卷(第5期);第65-72页 *
"基于Docker容器的Web集群设计与实现";刘熙,胡志勇;《电子设计工程》;20160517;第24卷(第8期);第117-119页 *

Also Published As

Publication number Publication date
CN109309693A (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
CN109309693B (zh) 基于docker的多服务系统、部署方法及装置、设备及存储介质
CN107666525B (zh) 集群容器ip分配的方法和装置
CN107515776B (zh) 业务不间断升级方法、待升级节点和可读存储介质
US20230308525A1 (en) Embedded database as a microservice for distributed container cloud platform
CN109491776B (zh) 任务编排方法和系统
US20180146069A1 (en) Efficient application build/deployment for distributed container cloud platform
CN113296792B (zh) 存储方法、装置、设备、存储介质和系统
CN109117169A (zh) 用于修复内核漏洞的方法和装置
CN110727653B (zh) 多项目负载均衡方法和装置
US20120159423A1 (en) Tenant independent add-on software packages for an enterprise platform as a service product
CN114189525B (zh) 服务请求方法、装置和电子设备
CN110825399B (zh) 一种应用程序的部署方法及装置
CN108829588B (zh) 一种测试应用程序的处理方法、部署系统及装置
CN113626286A (zh) 多集群实例处理方法、装置、电子设备及存储介质
US20220326940A1 (en) Service Upgrade Method, Apparatus, and System
CN112230857B (zh) 一种混合云系统、混合云盘申请方法和数据存储方法
CN109947489A (zh) 基于容器的外接设备管理方法、装置、设备及存储介质
CN108664343B (zh) 一种微服务的有状态调用方法及装置
US11900089B2 (en) Automatically configuring and deploying a software operator in a distributed computing environment from a package
CN110083366B (zh) 应用运行环境的生成方法、装置、计算设备及存储介质
CN111813379A (zh) 应用部署方法及装置、电子设备、计算机可读存储介质
CN115878138B (zh) 应用预下载方法、装置、计算机、存储介质
CN111459619A (zh) 一种基于云平台实现服务的方法和装置
CN115134238B (zh) 业务系统发布方法、装置、计算机设备和存储介质
CN113093995B (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
GR01 Patent grant
GR01 Patent grant