CN109324819A - 服务器代码部署方法、装置、服务器设备及存储介质 - Google Patents
服务器代码部署方法、装置、服务器设备及存储介质 Download PDFInfo
- Publication number
- CN109324819A CN109324819A CN201811138732.1A CN201811138732A CN109324819A CN 109324819 A CN109324819 A CN 109324819A CN 201811138732 A CN201811138732 A CN 201811138732A CN 109324819 A CN109324819 A CN 109324819A
- Authority
- CN
- China
- Prior art keywords
- docker
- code
- container
- server
- docker container
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种服务器代码部署方法、装置、服务器及存储介质。所述方法包括:启动管理Docker容器的容器集群管理工具;获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。本申请实施例通过容器集群管理工具管理设置在服务器上的多个Docker容器,并且每个Docker容器相互独立,可以实现一键式部署Docker应用容器,实现部署分布式***的服务器,可以提高服务器代码部署效率。
Description
技术领域
本申请涉及软件开发技术领域,尤其涉及一种服务器代码部署方法、装置、服务器及存储介质。
背景技术
传统部署服务器都是代码部署在虚拟机,通过虚拟机启动都是在分钟级的,而且占有硬盘的空间较大,***支持量也比较下,操作比较繁琐,后来采用Docker容器部署服务器,Docker容器是一个开源的应用容器引擎,让开发者可以打包应用以及应用所属的依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上。但当服务器上部署多个Docker容器形成Docker容器集群时,采用进行Docker容器部署操作也比较繁琐,因此导致服务器代码部署效率较低。
发明内容
本申请实施例提供了一种服务器代码部署方法、装置、服务器及存储介质,能够解决服务器代码部署效率较低的问题。
第一方面,本申请实施例提供了一种服务器代码部署方法,所述方法包括:启动管理Docker容器的容器集群管理工具;获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。
第二方面,本申请实施例还提供了一种服务器代码部署装置,所述装置包括:接收单元,用于启动管理Docker容器的容器集群管理工具;获取单元,用于获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;部署单元,用于通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。
第三方面,本申请实施例还提供了一种服务器,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述服务器代码部署方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述服务器代码部署方法。
本申请实施例提供了一种服务器代码部署方法、装置、服务器及存储介质。所述方法包括:启动管理Docker容器的容器集群管理工具;获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。本申请实施例通过容器集群管理工具管理设置在服务器上的多个Docker容器,并且每个Docker容器相互独立,可以实现一键式部署Docker应用容器,实现部署分布式***的服务器,可以提高服务器代码部署效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的服务器代码部署方法的应用场景示意图;
图2为本申请实施例提供的服务器代码部署方法的流程示意图;
图3为本申请实施例提供的服务器代码部署方法的一个子流程示意图;
图4为本申请实施例提供的服务器代码部署方法中获取Docker镜像的示意图;
图5为本申请实施例提供的服务器代码部署方法的另一个子流程示意图;
图6为本申请实施例提供的服务器代码部署方法的再一个子流程示意图;
图7为本申请一个实施例提供的服务器代码部署装置的示意性框图;
图8为本申请另一个实施例提供的服务器代码部署装置的示意性框图;
图9为本申请再一个实施例提供的服务器代码部署装置的示意性框图;以及
图10为本申请实施例提供的服务器的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本申请实施例提供的服务器代码部署方法的应用场景示意图。所述应用场景包括:
(1)服务器,指需要部署代码的服务器。
(2)数据库服务器,包括存储镜像的镜像仓库,及存储代码的代码仓库。
图1中的各个主体工作过程如下:服务器通过容器集群管理工具管理Docker容器,实现服务器代码部署的过程中,由于Docker是由镜像(英文为Image)、容器(英文为Container)、仓库(英文为Repository)三大核心组成,需要从镜像仓库中获取Docker需要使用的镜像,从代码仓库中获取代码,将所述镜像设置在所述Docker容器上,将所述代码加载到所述Docker容器中,以完成服务器代码部署。
需要说明的是,图1中仅仅示意出一个数据库服务器,在实际实施过程中,数据库服务器可以有多个,镜像仓库和代码仓库可以分别设置为不同的数据服务器,上述服务器代码部署方法的应用场景仅仅用于说明本申请技术方案,并不用于限定本申请技术方案。
图2为本申请实施例提供的服务器代码部署方法的示意性流程图。该服务器代码部署方法应用于图1中的服务器中,所述服务器可以为单独的服务器,也可以是服务器集群,以完成服务器代码部署方法的全部或者部分功能。
图2是本申请实施例提供的服务器代码部署方法的流程示意图。如图2所示,该方法包括以下步骤S210-S230:
S210、启动管理Docker容器的容器集群管理工具
其中,Docker是一个应用容器引擎,通过Docker可以将应用程序以及应用程序运行的依赖包集合到一个可移植的容器中,Docker由镜像(英文为Image)、容器(英文为Container)、仓库(英文为Repository)三大核心组成。相对于传统部署服务器的虚拟机,使用Docker容器通过小小的改动,就能替代以往大量的更新工作,可以实现应用程序更轻松的迁移和扩展。服务器上需要预先安装Docker。
容器集群管理工具,是指通过图形界面或者通过命令行来管理一组容器集群的软件程序,可以实现管理整个集群服务器上容器的管理和编排,常见的容器集群管理工具包括Swarm、Kubernetes和Apache Mesos等。服务器上需要预先安装容器集群管理工具,比如服务器上预先安装Kubernetes。
具体地,服务器上需要预先安装有容器集群管理工具和Docker工具。需要部署服务器代码时,首先启动所述容器集群管理工具,比如Kubernetes,服务器接收用于管理Docker容器的容器集群管理工具的启动指令,所述启动指令由研发人员通过操作所述容器集群管理工具上的相应功能菜单获取。
S220、获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上。
具体地,由于Docker容器是一个可移植的相对独立单元,通过Docker容器将应用程序以及应用程序运行所需的依赖包集合到Docker容器中,从而实现Docker容器将应用程序及应用程序运行所需要的依赖包打包并隔离,研发人员使用Docker为应用程序创建一个单独的可部署单元,也被称为Docker容器。所述Docker容器包含该应用程序运行需要的所有内容,它包括应用程序代码(或者二进制文件)、runtime(运行环境)、***工具和***库文件,通过将应用程序所有必需的资源打包成一个单元,将确保无论应用程序部署到哪里都有完全相同的环境,也有助于维护一个完全相同的开发和生产配置。服务器获取包含有应用程序代码的多个Docker容器,通过容器集群管理工具将多个所述Docker容器设置在服务器上。
S230、通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。
具体地,通过容器集群管理工具运行和管理所述Docker容器,由于Docker容器包含应用程序以及应用程序运行所需的依赖包,通过所述容器集群管理工具的功能菜单完成所述Docker容器在服务器上的编排和部署,也就完成了将所述Docker容器中包含的应用程序代码在服务器上的部署,从而完成服务器代码部署。其中,容器集群管理工具是指管理多个容器形成的容器集群的工具。以容器集群管理工具Kubernetes为例。Kubernetes用于自动化容器化应用程序的部署、扩展和管理。Kubernetes执行容器编排,这是将应用程序容器化后的下一步,以及如何在生产中大规模运行容器。只需要用声明性语言说出如何运行容器,Kubernetes将在任何地方以相同的方式部署应用程序。
本申请实施例通过启动管理Docker容器的容器集群管理工具,获取包含有应用程序代码的Docker容器,将所述Docker容器设置在服务器上,通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码的部署,从而提高服务器代码部署效率。
请参阅图3,图3为本申请实施例提供的服务器代码部署方法的一个子流程示意图,如图3所示,在一个实施例中,所述获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上的步骤之前还包括:创建Docker容器,所述创建Docker容器的步骤包括:
S310、接收创建Dockerfile的指令。
具体地,Docker容器与基础镜像一起工作是运行应用程序的基础。基础镜像及其所有依赖关系在名为“Dockerfile”的文件中进行了描述。在Dockerfile中定义好运行应用程序所需要的基础环境,而运行应用只需要通过Dockerfile就能构建一个相同的基础环境,比如,Docker将通过8080端口暴露该应用程序。服务器接收人工创建Dockerfile的指令,创建Dockerfile。
S320、获取Docker镜像,将所述Docker镜像创建在所述Dockerfile之上。
其中,服务器获取Docker镜像,所述镜像由人工创建,或者从镜像仓库中获取,并将所述Docker镜像创建在所述Dockerfile之上。在一个实施例中,所述获取Docker镜像的步骤包括:
接收创建Docker镜像;
或者从镜像仓库中获取Docker镜像。
具体地,镜像,英文为Image,是静态的,是容器中被互相分享的文件的映射,但不能***作。构建Image,也就是构建镜像。Docker镜像是Docker容器运行时的只读模板,每一个镜像由一系列的层(layers)组成。Docker使用UnionFS来将这些层联合到单独的镜像中。其中,UnionFS是一种为Linux,FreeBSD和NetBSD操作***设计的把其他文件***联合到一个联合挂载点的文件***服务,UnionFS允许独立文件***中的文件和文件夹(称之为分支)被透明覆盖,形成一个单独连贯的文件***。正因为有了这些层的存在,Docker是如此的轻量。当改变了一个Docker镜像,比如升级到某个程序到新的版本,一个新的层会被创建,不用替换整个原先的镜像或者重新建立,只是一个新的层被添加或升级了,层使得分发Docker镜像变得简单和快速。服务器可以接收创建Docker镜像的指令,创建Docker镜像。
或者,请参阅图4,图4为本申请实施例提供的服务器代码部署方法中获取Docker镜像的示意图,镜像可以从仓库中获取,利用已有的镜像创建一个Docker容器,其中,实例化是指在面向对象的编程中,通常把用类创建对象的过程称为实例化。目前Docker维护有一个公共仓库Docker Hub,其中已经包括了很多镜像,大部分需求,都可以通过在DockerHub中直接下载镜像来实现。
S330、接收在所述Dockerfile内部署的应用程序,以完成Docker容器的创建。
具体地,镜像是静态不可操作的,而容器(Container)可以理解为镜像的动态状态,是可以***作的。镜像保存在Docker仓库中。仓库(Repository),为代码控制中的代码仓库。同样的,Docker仓库也有公有和私有的概念。公有的Docker仓库名字是Docker Hub。Docker Hub提供了庞大的镜像集合供使用。这些镜像可以是自己创建,或者在别人的镜像基础上创建。Docker仓库是Docker的分发部分。
开发应用程序是在容器中进行的,开发应用程序的过程中需确保容器始终处于运行状态,开发完成后,将Docker镜像推送至Docker仓库,镜像被保存在Docker仓库中,Docker仓库(Repository)是集中存放镜像的地方。其中,镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,需要一个集中的存储和分发镜像的服务,Docker Repository就是集中存储和分发镜像的服务。
服务器从镜像仓库中获取包含有应用程序代码的Docker容器,将所述Docker容器设置在服务器上。
请参阅图5,图5为本申请实施例提供的服务器代码部署方法的另一个子流程示意图。如图5所示,在一个实施例中,所述方法还包括:更新Docker容器,所述更新Docker容器的步骤包括:
S510、接收运维自动化工具的连接;
S520、通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码;
S530、通过所述运维自动化工具触发所述Docker容器中代码的重新加载,以完成所述Docker容器的更新。
其中,运维自动化工具是指自动化运营维护Docker容器的工具。更新代码是指Docker容器中需要更新的代码。
具体地,服务器接收运维自动化工具的连接,通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码,通过所述运维自动化工具触发所述Docker容器中代码的重新加载,以完成所述Docker容器的更新。
由于即使只是对代码做了小的变更,一般情况下都需要一个构建新容器的过程,把所述更新代码拉取(Pull)到服务器,替代正在运行的版本,从而降低了Docker容器更新的效率。
在最初的容器构建之后,99%的变更都是纯代码。不需要添加任何依赖,或者是改变任何代码运行所必需的东西。Docker实际上只是一种封装基础架构的方式,要求代码运行在一个自包含的包中。由于99%的变更都是代码,不是基础架构,因此不需要在每次变更的时候重新构建Docker容器的基础架构。
在本申请实施例中,使用Docker的主机卷(volumes)解决。在Docker容器中Dockerfile的第一次迭代中,服务器从代码仓库中拉取代码,并直接构建进容器中。在本申请实施例中,更新Docker容器时,服务器将从代码仓库中获取的代码放在容器外面,在容器启动的时候,通过加载一个主机卷(Host volume)来代替。当更新Docker容器,运维自动化工具从代码仓库上获取代码到应用程序的目录。比如,所有代码存储在GitHub,使用DockerRegistry自动构建和存储代码,并使用Ansible来管理和部署容器到服务器上。使用Docker的特性volumes。在Docker files的第一次迭代中,从GitHub拉取代码,并直接构建进容器中。服务器将代码放在容器外面,并在容器启动的时候,通过加载一个主机卷(hostvolume)来代替。当更新Docker容器时,Ansible从GitHub上拉取更新代码到服务器的应用程序目录,通过检查来确保相关联的容器正在运行,如果没有在运行,将启动容器并把应用程序代码映射进容器。
请参阅图6,图6为本申请实施例提供的服务器代码部署方法的再一个子流程示意图。如图6所示,所述方法还包括:更新Docker容器,所述更新Docker容器的步骤包括:
S610、获取更新代码,将所述更新代码存储在所述Docker容器外部;
S620、若所述Docker容器启动,加载一个主机卷;
S630、通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码,将所述代码更新存储到服务器的相应目录;
S640、若所述Docker容器正在运行,将所述代码更新映射进容器,完成所述Docker容器的更新。
具体地,服务器获取更新代码,将所述更新代码存储在所述Docker容器外部,若所述Docker容器启动,加载一个主机卷通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码,将所述代码更新存储到服务器的相应目录,若所述Docker容器正在运行,将所述代码更新映射进容器,完成所述Docker容器的更新。比如,服务器使用Ansible的另一个组件uWSGI,因为大部分app是Python的(Django),所以在Docker容器中使用uWSGI提供服务。uWSGI有一个touch reload特性,可以监控指定的文件,当该文件被touch的时候,会重载uWSGI服务。在Ansible从GitHub拉取我们的变更之后,使用Ansible来touch uwsgi.ini文件,触发正在运行的容器中的uWSGI重载,从而来运行代码的更新版本。
需要说明的是,上述各个实施例所述的服务器代码部署方法,可以根据需要将不同方法中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。
请参阅图7,对应于上述服务器代码部署方法,本申请实施例还提供一种服务器代码部署装置。图7是本申请实施例提供的一种服务器代码部署装置的示意性框图。该服务器代码部署装置包括用于执行上述服务器代码部署方法的单元,该装置可以被配置于服务器中。具体地,请参阅图7,该服务器代码部署装置700包括接收单元701、获取单元702以及部署单元703。
其中,接收单元701,用于启动管理Docker容器的容器集群管理工具;
获取单元702,用于获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;以及
部署单元703,用于通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。
请参阅图8,图8为本申请另一个实施例提供的服务器代码部署装置的示意性框图,如图8所示,所述装置700还包括创建单元704,用于创建Docker容器,所述创建单元704包括:
第一接收子单元,用于接收创建Dockerfile的指令;
获取子单元,用于获取Docker镜像,将所述Docker镜像创建在所述Dockerfile之上;
第二接收子单元,用于接收在所述Dockerfile内部署的应用程序,以完成Docker容器的创建。
请参阅图9,图9为本申请再一个实施例提供的服务器代码部署装置的示意性框图,如图9所示,所述装置700还包括:更新单元705,用于更新Docker容器,所述更新单元705包括:
连接子单元,用于接收运维自动化工具的连接;
获取子单元,用于通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码;
加载子单元,用于通过所述运维自动化工具触发所述Docker容器中代码的重新加载,以完成所述Docker容器的更新。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述服务器代码部署装置700和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
同时,上述服务器代码部署装置中各个单元的划分和连接方式仅用于举例说明,在其他实施例中,可将服务器代码部署装置按照需要划分为不同的单元,也可将服务器代码部署装置中各单元采取不同的连接顺序和方式,以完成上述服务器代码部署装置的全部或部分功能。
上述服务器代码部署装置可以实现为一种计算机程序的形式,该计算机程序可以在如图10所示的服务器上运行。
请参阅图10,图10是本申请实施例提供的一种服务器的示意性框图。该服务器1000可以是具有通信功能的计算机设备。
参阅图10,该服务器1000包括通过***总线1001连接的处理器1002、存储器、网络接口1005和音频输入接口1006,其中,存储器可以包括非易失性存储介质1003和内存储器1004。
该非易失性存储介质1003可存储操作***10031和计算机程序10032。该计算机程序10032包括程序指令,该程序指令被执行时,可使得处理器1002执行一种上述服务器代码部署方法。
该处理器1002用于提供计算和控制能力,以支撑整个服务器1000的运行。
该内存储器1004为非易失性存储介质1003中的计算机程序10032的运行提供环境,该计算机程序10032被处理器1002执行时,可使得处理器1002执行一种上述服务器代码部署方法。
该网络接口1005用于与其它设备进行网络通信。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器1000的限定,具体的服务器1000可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器1002用于运行存储在存储器中的计算机程序10032,以实现如下步骤:启动管理Docker容器的容器集群管理工具;获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。
在一实施例中,所述处理器1002在实现上述步骤时,所述提示内容中还包括预设内容,所述第一随机码和所述预设内容的顺序在所述语音中被限定;
在一实施例中,所述处理器1002在实现上述步骤时,所述获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上的步骤之前还包括:创建Docker容器,所述创建Docker容器的步骤包括:接收创建Dockerfile的指令;获取Docker镜像,将所述Docker镜像创建在所述Dockerfile之上;接收在所述Dockerfile内部署的应用程序,以完成Docker容器的创建。
在一实施例中,所述处理器1002在实现上述步骤时,所述获取Docker镜像的步骤包括:接收创建Docker镜像;或者从镜像仓库中获取Docker镜像。
在一实施例中,所述处理器1002在实现上述步骤时,所述方法还包括:更新Docker容器,所述更新Docker容器的步骤包括:接收运维自动化工具的连接;通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码;通过所述运维自动化工具触发所述Docker容器中代码的重新加载,以完成所述Docker容器的更新。
在一实施例中,所述处理器1002在实现上述步骤时,所述方法还包括:更新Docker容器,所述更新Docker容器的步骤包括:获取更新代码,将所述更新代码存储在所述Docker容器外部;若所述Docker容器启动,加载一个主机卷;通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码,将所述代码更新存储到服务器的相应目录;若所述Docker容器正在运行,将所述代码更新映射进容器,完成所述Docker容器的更新。
应当理解,在本申请实施例中,处理器1002可以是中央处理单元(CentralProcessing Unit,CPU),该处理器1002还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时使处理器执行如下步骤:
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的服务器代码部署方法的步骤。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种服务器代码部署方法,其特征在于,所述方法包括:
启动管理Docker容器的容器集群管理工具;
获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;
通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。
2.根据权利要求1所述服务器代码部署方法,其特征在于,所述获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上的步骤之前还包括:创建Docker容器,所述创建Docker容器的步骤包括:
接收创建Dockerfile的指令;
获取Docker镜像,将所述Docker镜像创建在所述Dockerfile之上;
接收在所述Dockerfile内部署的应用程序,以完成Docker容器的创建。
3.根据权利要求2所述服务器代码部署方法,其特征在于,所述获取Docker镜像的步骤包括:
接收创建Docker镜像;
或者从镜像仓库中获取Docker镜像。
4.根据权利要求1所述服务器代码部署方法,其特征在于,所述方法还包括:更新Docker容器,所述更新Docker容器的步骤包括:
接收运维自动化工具的连接;
通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码;
通过所述运维自动化工具触发所述Docker容器中代码的重新加载,以完成所述Docker容器的更新。
5.根据权利要求1所述服务器代码部署方法,其特征在于,所述方法还包括:更新Docker容器,所述更新Docker容器的步骤包括:
获取更新代码,将所述更新代码存储在所述Docker容器外部;
若所述Docker容器启动,加载一个主机卷;
通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码,将所述代码更新存储到服务器的相应目录;
若所述Docker容器正在运行,将所述代码更新映射进容器,完成所述Docker容器的更新。
6.一种服务器代码部署装置,其特征在于,所述装置包括:
接收单元,用于启动管理Docker容器的容器集群管理工具;
获取单元,用于获取包含应用程序代码的多个Docker容器,将多个所述Docker容器布置在服务器上;
部署单元,用于通过所述容器集群管理工具运行所述Docker容器,将包含应用程序代码的所述Docker容器进行部署,以完成服务器代码部署。
7.根据权利要求6所述服务器代码部署装置,其特征在于,所述装置还包括创建单元,用于创建Docker容器,所述创建单元包括:
第一接收子单元,用于接收创建Dockerfile的指令;
获取子单元,用于获取Docker镜像,将所述Docker镜像创建在所述Dockerfile之上;
第二接收子单元,用于接收在所述Dockerfile内部署的应用程序,以完成Docker容器的创建。
8.根据权利要求6所述服务器代码部署装置,其特征在于,所述装置还包括:更新单元,用于更新Docker容器,所述更新单元包括:
连接子单元,用于接收运维自动化工具的连接;
获取子单元,用于通过所述运维自动化工具从代码仓库中获取所述Docker容器的更新代码;
加载子单元,用于通过所述运维自动化工具触发所述Docker容器中代码的重新加载,以完成所述Docker容器的更新。
9.一种服务器,其特征在于,所述服务器包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述服务器代码部署方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-5中任一项所述服务器代码部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811138732.1A CN109324819A (zh) | 2018-09-28 | 2018-09-28 | 服务器代码部署方法、装置、服务器设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811138732.1A CN109324819A (zh) | 2018-09-28 | 2018-09-28 | 服务器代码部署方法、装置、服务器设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109324819A true CN109324819A (zh) | 2019-02-12 |
Family
ID=65265983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811138732.1A Pending CN109324819A (zh) | 2018-09-28 | 2018-09-28 | 服务器代码部署方法、装置、服务器设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109324819A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007948A (zh) * | 2019-02-22 | 2019-07-12 | 贵州力创科技发展有限公司 | 一种运维方法、装置和存储介质 |
CN110262871A (zh) * | 2019-05-17 | 2019-09-20 | 平安科技(深圳)有限公司 | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 |
CN110336699A (zh) * | 2019-07-09 | 2019-10-15 | 北京和利时智能技术有限公司 | 自动化部署网关***的方法、装置及*** |
CN110825399A (zh) * | 2019-11-07 | 2020-02-21 | 郑州悉知信息科技股份有限公司 | 一种应用程序的部署方法及装置 |
CN110865840A (zh) * | 2019-11-18 | 2020-03-06 | 上海极链网络科技有限公司 | 一种应用管理方法、装置、服务器及存储介质 |
CN110888655A (zh) * | 2019-11-14 | 2020-03-17 | 中国民航信息网络股份有限公司 | 一种应用发布方法及装置 |
CN111427605A (zh) * | 2020-06-15 | 2020-07-17 | 广东睿江云计算股份有限公司 | 基于docker的分布式代码自动更新部署方法及*** |
CN111796801A (zh) * | 2020-06-30 | 2020-10-20 | 中国工商银行股份有限公司 | 基于容器的应用版本自动化构建方法及*** |
CN112379903A (zh) * | 2020-11-09 | 2021-02-19 | 杭州安恒信息技术股份有限公司 | 版本更新方法、装置、***、电子装置和存储介质 |
CN112650662A (zh) * | 2019-10-10 | 2021-04-13 | 上海哔哩哔哩科技有限公司 | 测试环境部署方法及装置 |
CN113805858A (zh) * | 2021-02-10 | 2021-12-17 | 京东科技控股股份有限公司 | 持续部署脚本语言开发的软件的方法和装置 |
US11249749B2 (en) | 2020-03-26 | 2022-02-15 | Red Hat, Inc. | Automatic generation of configuration files |
WO2023039757A1 (en) * | 2021-09-15 | 2023-03-23 | Siemens Aktiengesellschaft | Method and apparatus for automatically configuring and deploying containerized application |
CN117055880A (zh) * | 2023-08-22 | 2023-11-14 | 广东保伦电子股份有限公司 | 一种基于容器化部署的文档转码方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528224A (zh) * | 2016-11-03 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种Docker容器的内容更新方法、服务器及*** |
CN107515783A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 基于应用容器集群工具的应用容器管控方法及装置 |
US9983891B1 (en) * | 2017-03-21 | 2018-05-29 | Veritas Technologies Llc | Systems and methods for distributing configuration templates with application containers |
CN108415828A (zh) * | 2018-01-23 | 2018-08-17 | 广州视源电子科技股份有限公司 | 程序测试方法、装置、可读存储介质和计算机设备 |
CN108563451A (zh) * | 2018-02-26 | 2018-09-21 | 挖财网络技术有限公司 | 一种Docker容器的构建和发布的方法、装置及*** |
-
2018
- 2018-09-28 CN CN201811138732.1A patent/CN109324819A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107515783A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 基于应用容器集群工具的应用容器管控方法及装置 |
CN106528224A (zh) * | 2016-11-03 | 2017-03-22 | 腾讯科技(深圳)有限公司 | 一种Docker容器的内容更新方法、服务器及*** |
US9983891B1 (en) * | 2017-03-21 | 2018-05-29 | Veritas Technologies Llc | Systems and methods for distributing configuration templates with application containers |
CN108415828A (zh) * | 2018-01-23 | 2018-08-17 | 广州视源电子科技股份有限公司 | 程序测试方法、装置、可读存储介质和计算机设备 |
CN108563451A (zh) * | 2018-02-26 | 2018-09-21 | 挖财网络技术有限公司 | 一种Docker容器的构建和发布的方法、装置及*** |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110007948A (zh) * | 2019-02-22 | 2019-07-12 | 贵州力创科技发展有限公司 | 一种运维方法、装置和存储介质 |
CN110262871A (zh) * | 2019-05-17 | 2019-09-20 | 平安科技(深圳)有限公司 | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 |
CN110262871B (zh) * | 2019-05-17 | 2024-01-23 | 平安科技(深圳)有限公司 | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 |
CN110336699A (zh) * | 2019-07-09 | 2019-10-15 | 北京和利时智能技术有限公司 | 自动化部署网关***的方法、装置及*** |
CN112650662A (zh) * | 2019-10-10 | 2021-04-13 | 上海哔哩哔哩科技有限公司 | 测试环境部署方法及装置 |
CN110825399A (zh) * | 2019-11-07 | 2020-02-21 | 郑州悉知信息科技股份有限公司 | 一种应用程序的部署方法及装置 |
CN110825399B (zh) * | 2019-11-07 | 2024-02-20 | 郑州悉知信息科技股份有限公司 | 一种应用程序的部署方法及装置 |
CN110888655A (zh) * | 2019-11-14 | 2020-03-17 | 中国民航信息网络股份有限公司 | 一种应用发布方法及装置 |
CN110865840B (zh) * | 2019-11-18 | 2023-11-03 | 义乌中国小商品城大数据有限公司 | 一种应用管理方法、装置、服务器及存储介质 |
CN110865840A (zh) * | 2019-11-18 | 2020-03-06 | 上海极链网络科技有限公司 | 一种应用管理方法、装置、服务器及存储介质 |
US11249749B2 (en) | 2020-03-26 | 2022-02-15 | Red Hat, Inc. | Automatic generation of configuration files |
CN111427605B (zh) * | 2020-06-15 | 2020-10-16 | 广东睿江云计算股份有限公司 | 基于docker的分布式代码自动更新部署方法及*** |
CN111427605A (zh) * | 2020-06-15 | 2020-07-17 | 广东睿江云计算股份有限公司 | 基于docker的分布式代码自动更新部署方法及*** |
CN111796801B (zh) * | 2020-06-30 | 2023-08-11 | 中国工商银行股份有限公司 | 基于容器的应用版本自动化构建方法及*** |
CN111796801A (zh) * | 2020-06-30 | 2020-10-20 | 中国工商银行股份有限公司 | 基于容器的应用版本自动化构建方法及*** |
CN112379903A (zh) * | 2020-11-09 | 2021-02-19 | 杭州安恒信息技术股份有限公司 | 版本更新方法、装置、***、电子装置和存储介质 |
CN113805858A (zh) * | 2021-02-10 | 2021-12-17 | 京东科技控股股份有限公司 | 持续部署脚本语言开发的软件的方法和装置 |
CN113805858B (zh) * | 2021-02-10 | 2024-04-05 | 京东科技控股股份有限公司 | 持续部署脚本语言开发的软件的方法和装置 |
WO2023039757A1 (en) * | 2021-09-15 | 2023-03-23 | Siemens Aktiengesellschaft | Method and apparatus for automatically configuring and deploying containerized application |
CN117055880A (zh) * | 2023-08-22 | 2023-11-14 | 广东保伦电子股份有限公司 | 一种基于容器化部署的文档转码方法、装置及存储介质 |
CN117055880B (zh) * | 2023-08-22 | 2024-05-03 | 广东保伦电子股份有限公司 | 一种基于容器化部署的文档转码方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324819A (zh) | 服务器代码部署方法、装置、服务器设备及存储介质 | |
US10452373B2 (en) | System and method for service import/export in a cloud platform environment | |
US20190227794A1 (en) | Systems and methods for real time version control for integrating updated web-based components with a native application | |
JP7011737B2 (ja) | コネクタ開発および統合チャネル展開のためのシステムおよび方法 | |
CN109597814B (zh) | 一种后台管理信息***的在线快速交付*** | |
US10296298B1 (en) | Systems and methods for cross platform information exchange mechanism for integrating web-based components with a native application | |
US9274811B1 (en) | System and method for cloud provisioning and application deployment | |
US10296309B1 (en) | Systems and methods for automatic API generation for bi-directional communication between native and web-based components of a mobile application | |
US9612817B2 (en) | System and method for providing a physical plugin for use in a cloud platform environment | |
US20180088925A1 (en) | Microservices version state visualization | |
EP2107458A1 (en) | Modelling software appliance | |
CN103530156A (zh) | 动态加载和调用程序的方法及装置 | |
US10305731B2 (en) | System and method for provisioning cloud services across heterogeneous environments using partitioned provisioning instructions stored on a configuration management server | |
CN103353845A (zh) | 脚本加载、推送方法及装置 | |
CN109542459A (zh) | 应用程序打包方法及装置、计算机装置及计算机存储介质 | |
CN112068850A (zh) | 服务产品实例的创建方法、装置及电子设备 | |
US11853788B2 (en) | Managed virtual appliances | |
US20140143752A1 (en) | Systems and methods for providing environments as a service | |
CN114461182A (zh) | 流水线构建的方法、装置、电子设备及计算机可读存储介质 | |
US10824511B2 (en) | Data migration for a shared database | |
CN109753302B (zh) | 基于混合云计算平台的无服务函数的服务方法 | |
WO2014145147A1 (en) | Web services provided from software framework | |
US11301217B1 (en) | Systems and methods for automated building, managing, and distributing of operating systems with different customizations for different users | |
CN108334374A (zh) | 组件动态加载与执行的方法和装置 | |
CN114356520A (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 |