基于Docker容器的镜像打包方法、装置及电子设备制造方法及图纸

技术编号:20221491 阅读:23 留言:0更新日期:2019-01-28 20:05
本申请涉及计算虚拟化服务技术领域,公开了一种基于Docker容器的镜像打包方法、装置及电子设备,其中,基于Docker容器的镜像打包方法包括:从预设版本控制系统的仓库中获取原始应用包,并从预设Docker私服中获取基础Docker容器镜像包,基础Docker容器镜像包包括中间件和底层操作系统;基于Maven插件,对原始应用包以及基础Docker容器镜像包进行打包处理,得到相应的目标镜像包,目标镜像包被打包在Docker中。本申请实施例的方法,将原有的复杂的打包操作集中在一起快速完成,极大提高打包效率,而且不需要借助于中间件容器,避免了中间件容器带来的应用环境等额外因素导致的问题。

【技术实现步骤摘要】
基于Docker容器的镜像打包方法、装置及电子设备
本申请涉及计算虚拟化服务
,具体而言,本申请涉及一种基于Docker容器的镜像打包方法、装置及电子设备。
技术介绍
Docker(容器)是PaaS提供商DotCloud开源的一个基于LXC(Linuxcontainer,Linux容器)的高级容器引擎,使用客户端/服务器架构模式,使用OPENAPI来管理容器整个生命周期。镜像(Image)是构建容器的基础,镜像是一种分层结构的文件系统。一个只读层被称为镜像,一个镜像是永久不会变的,并且镜像是不可写、无状态的。Docker使用一个统一文件系统,Docker进程认为整个文件系统是以读写方式挂载的,但是所有的变更都发生顶层的可写层,而下层的原始的只读镜像文件并未变化。业界现有的基于Docker的镜像打包方法,需要借助于平台提供的中间件容器来完成待打包应用程序的打包,得到相应的应用包,接着将得到的应用包与基础镜像包再次打包成整体。然而,采用上述打包方法,不仅打包过程繁琐,导致效率低下,而且当中间件容器出现故障时,需要开发人员、中间件容器提供方及运维人员等众多人员的共同参与,消耗大量人力资源,且不利于故障的快速解决。
技术实现思路
本申请的目的旨在至少能解决上述的技术缺陷之一,特别是需要借助于平台提供的中间件容器来完成待打包应用程序的打包的技术缺陷。第一方面,提供了一种基于Docker容器的镜像打包方法,包括:从预设版本控制系统的仓库中获取原始应用包,并从预设Docker私服中获取基础Docker容器镜像包,基础Docker容器镜像包包括中间件和底层操作系统;基于Maven插件,对原始应用包以及基础Docker容器镜像包进行打包处理,得到相应的目标镜像包,目标镜像包被打包在Docker中。第二方面,提供了一种基于Docker容器的镜像打包装置,包括:获取模块,用于从预设版本控制系统的仓库中获取原始应用包,并从预设Docker私服中获取基础Docker容器镜像包,基础Docker容器镜像包包括中间件和底层操作系统;第一处理模块,用于基于Maven插件,对原始应用包以及基础Docker容器镜像包进行打包处理,得到相应的目标镜像包,目标镜像包被打包在Docker中。第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的基于Docker容器的镜像打包方法。第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的基于Docker容器的镜像打包方法。本申请实施提供的基于Docker容器的镜像打包方法,从预设版本控制系统的仓库中获取原始应用包,并从预设Docker私服中获取基础Docker容器镜像包,为后续基于Maven插件,对原始应用包以及基础Docker容器镜像包进行打包处理提供前提保障;基于Maven插件,对原始应用包以及基础Docker容器镜像包进行打包处理,使得可以直接将原始应用包以及基础Docker容器镜像包打包成一个整体镜像包,从而将原有的复杂的打包操作集中在一起快速完成,极大提高打包效率,而且不需要借助于中间件容器,避免了中间件容器带来的应用环境等额外因素导致的问题,另外,即使打包过程出现故障,也不需要中间件容器提供方人员的参与,节约了人力资源。本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。附图说明本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本申请实施例的基于Docker容器的镜像打包方法的流程示意图;图2为本申请实施例的基于Docker容器的镜像打包装置的基本结构示意图;图3为本申请实施例的基于Docker容器的镜像打包装置的详细结构示意图;图4为本申请实施例的电子设备的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。本
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。业界现在的docker平台部署的基本流程是:平台提供中间件容器,接着通过构建工具将待打包的应用程序打包,得到相应的应用包,接着关闭该应用程序提供的服务,接着将应用包存储至容器中指定目录,接着重启该应用程序提供的服务。这种操作流程不仅繁琐,而且效率低下。本申请提供的基于Docker容器的镜像打包方法、装置及电子设备,旨在解决现有技术的如上技术问题。下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。实施例一本申请实施例提供了一种基于Docker容器的镜像打包方法,如图1所示,包括:步骤S100,从预设版本控制系统的仓库中获取原始应用包,并从预设Docker私服中获取基础Docker容器镜像包,基础Docker容器镜像包包括中间件和底层操作系统。具体地,预设版本控制系统的仓库包括仓库git(分布式版本控制系统)或仓库svn(svn是Subversion的简称,是一个开放源代码的版本控制系统),即可以通过Jenkins在仓库git或svn中获取待打包的应用的源代码。其中,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,可以提供一个开放易用的软件平台,使软件的持续集成成为可能。进一步地,在获取到待打包的源代码之后,可以通过相应的打包工具(例如Maven)对待打包的源代码进行打包处理,得到上述的原始应用包。其中,通过Maven对待打包的源代码进行打包处理,实际上是通过Maven提供的jetty选项,对获取到的待打包的源代码进行相应的编译操作,从而得到上述的原始应用包。其中,jetty选项需要在Maven的配置文件pom.xml中进行预先配置。进一步地,可以从预设Docker私服中获取基础Docker容器镜像包,即可以获取Docker私服中存储的基础Docker容器镜像包,即从Docker私服中获取基础Docker容器镜像包,此外的Docker私服即为开源应用容器引擎Docker的服务器。其中,基础Docker容本文档来自技高网
...

【技术保护点】
1.一种基于Docker容器的镜像打包方法,其特征在于,包括:从预设版本控制系统的仓库中获取原始应用包,并从预设Docker私服中获取与基础Docker容器镜像包,所述基础Docker容器镜像包包括中间件和底层操作系统;基于Maven插件,对所述原始应用包以及所述基础Docker容器镜像包进行打包处理,得到相应的目标镜像包,所述目标镜像包被打包在Docker中。

【技术特征摘要】
1.一种基于Docker容器的镜像打包方法,其特征在于,包括:从预设版本控制系统的仓库中获取原始应用包,并从预设Docker私服中获取与基础Docker容器镜像包,所述基础Docker容器镜像包包括中间件和底层操作系统;基于Maven插件,对所述原始应用包以及所述基础Docker容器镜像包进行打包处理,得到相应的目标镜像包,所述目标镜像包被打包在Docker中。2.根据权利要求1所述的方法,其特征在于,在得到目标镜像包之后,还包括:将所述目标镜像包推送至开源应用容器引擎Docker的服务器,以完成对所述目标镜像包的部署。3.根据权利要求2所述的方法,其特征在于,在将所述目标镜像包推送至Docker容器镜像仓库之前,还包括:设置所述目标镜像包的版本标识;将设置有版本标识的所述目标镜像包进行存储。4.根据权利要求3所述的方法,其特征在于,在将设置有版本标识的所述目标镜像包进行存储之后,还包括:通过第一预设命令,来运行所述目标镜像包。5.根据权利要求2所述的方法,其特征在于,将所述目标镜像包推送至开源应用容器引擎Docker的服务器,包括:通过第二预设命令,将所述目标镜像包推送至开源应用容器引擎Docker的服务器。6.根据权利要求1-5任一项所述的方法,其特征在于,在基于Mave...

【专利技术属性】
技术研发人员:张欢
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1