CN113342359B - 容器镜像文件智能生成方法、装置、设备及存储介质 - Google Patents
容器镜像文件智能生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113342359B CN113342359B CN202110525774.6A CN202110525774A CN113342359B CN 113342359 B CN113342359 B CN 113342359B CN 202110525774 A CN202110525774 A CN 202110525774A CN 113342359 B CN113342359 B CN 113342359B
- Authority
- CN
- China
- Prior art keywords
- file
- service
- mirror image
- image
- basic
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Facsimiles In General (AREA)
Abstract
本发明公开了一种容器镜像文件智能生成方法、装置、设备及存储介质,所述方法通过对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;根据所述镜像制作指令生成服务容器镜像文件,能够使得整个打包流程规范,简化了用户操作,将服务生成镜像的流程模板化,极大提高了镜像制作的效率,加快镜像传输部署的速度,支持分层压缩,减小了单个服务容器镜像大小,提高了生产效率,降低了人工成本。
Description
技术领域
本发明涉及软件容器微服务化技术领域,尤其涉及一种容器镜像文件智能生成方法、装置、设备及存储介质。
背景技术
Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了Docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化;随着云计算技术的蓬勃发展,Docker容器和微服务等云计算技术运用越来越广泛,更多的企业开始将传统的运行在服务器上的应用软件或系统迁移到支持云计算平台的公有云、私有云或混合云上承载运行,从而有效的降低成本和提升效率,因此软件的云化成为一种潮流和趋势。
通用的应用系统云化改造既包括分布式开放架构的改造,即应用构建在可按需扩展的资源池之上,也包括应用软件需要实现分层化和模块化,实现业务与数据、软件与硬件解耦,基于开源软件实现。
同时,对于一些已经基于以上原则设计开发的分布式软件系统,可以直接迁移到云计算平台上,但是必须针对云平台镜像的特点,传统的分布式软件基于系统整体打包成软件安装包,在安装时通过用户界面选择区分在哪些目标机器上安装部署哪些服务,而软件微服务云化改造之后,则由容器集群管理工具自动调度维护服务在某些虚拟节点上运行,因此对整个软件系统的打包需求,变更为要求整个分布式系统基于服务打包制作成多个服务镜像文件,而这本身需要繁琐的人工操作对每个服务镜像包含的文件信息进行分析、制作;同时整个分布式软件系统一般存在公用的基础软件层,不加区分直接打包到所有服务镜像中,则会导致每个服务镜像中均冗余存在这部分文件,进而导致单个服务镜像文件过大,影响镜像的下载和部署速度,其生产效率较低,且人工成本较高,费时费力。
发明内容
本发明的主要目的在于提供一种容器镜像文件智能生成方法、装置、设备及存储介质,旨在解决现有技术中传统分布式软件部署存在单个服务镜像文件过大,影响镜像的下载和部署速度,生产效率较低,且人工成本较高,费时费力的技术问题。
第一方面,本发明提供一种容器镜像文件智能生成方法,所述容器镜像文件智能生成方法包括以下步骤:
对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;
获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;
根据所述镜像制作指令生成服务容器镜像文件。
可选地,所述对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的动态库信息,并在服务依赖信息文件中记录所述动态库信息之前,所述容器镜像文件智能生成方法还包括:
在基础镜像配置文件中对公共层文件路径镜像设置;
根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息。
可选地,所述在基础镜像配置文件中对公共层文件路径镜像设置,包括:
根据用户指令确定公共层的公共基础镜像文件;
在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径;
在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置。
可选地,所述根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息,包括:
根据设置后的文件路径扫描识别分布式软件系统整包部署和运行的环境,通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,获取所述分布式软件系统包含的服务列表及名称;
获取操作系统进程列表,将所述操作系统进程列表与所述服务列表进行匹配,获得服务与进程的关联关系;
将所述服务列表及名称、所述服务与进程的关联关系作为服务进程信息。
可选地,所述对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息,包括:
通过所述服务进程信息中对应的进程ID对各服务关联进程的运行状态进行扫描,获得各服务关联进程运行时加载的所有动态库的动态特征信息;
在所述动态特征信息中过滤掉操作系统动态库文件以及公共依赖动态库文件;
将过滤后余下的专属依赖动态库信息记录到服务依赖信息文件中。
可选地,所述获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录,包括:
读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库;
依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构;
将镜像制作指令文件放置到所述目录结构的根目录。
可选地,所述根据所述镜像制作指令生成服务容器镜像文件,包括:
根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件;
将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件。
第二方面,为实现上述目的,本发明还提出一种容器镜像文件智能生成装置,所述容器镜像文件智能生成装置包括:
扫描模块,用于对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;
放置模块,用于获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;
生成模块,用于根据所述镜像制作指令生成服务容器镜像文件。
第三方面,为实现上述目的,本发明还提出一种容器镜像文件智能生成设备,所述容器镜像文件智能生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的容器镜像文件智能生成程序,所述容器镜像文件智能生成程序配置为实现如上文所述的容器镜像文件智能生成方法的步骤。
第四方面,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有容器镜像文件智能生成程序,所述容器镜像文件智能生成程序被处理器执行时实现如上文所述的容器镜像文件智能生成方法的步骤。
本发明提出的容器镜像文件智能生成方法,通过对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;根据所述镜像制作指令生成服务容器镜像文件,满足了传统的分布式软件基于系统整体打包方式自动过渡到基于单个服务容器镜像打包的软件云化打包方式,能够使得整个打包流程规范,简化了用户操作,将服务生成镜像的流程模板化,极大提高了镜像制作的效率,加快镜像传输部署的速度,支持分层压缩,减小了单个服务容器镜像大小,提高了生产效率,降低了人工成本。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明容器镜像文件智能生成方法第一实施例的流程示意图;
图3为本发明容器镜像文件智能生成方法第二实施例的流程示意图;
图4为本发明容器镜像文件智能生成方法第三实施例的流程示意图;
图5为本发明容器镜像文件智能生成方法第四实施例的流程示意图;
图6为本发明容器镜像文件智能生成方法第五实施例的流程示意图;
图7为本发明容器镜像文件智能生成方法第六实施例的流程示意图;
图8为本发明容器镜像文件智能生成方法第七实施例的流程示意图;
图9为本发明容器镜像文件智能生成装置第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:通过对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;根据所述镜像制作指令生成服务容器镜像文件,满足了传统的分布式软件基于系统整体打包方式自动过渡到基于单个服务容器镜像打包的软件云化打包方式,能够使得整个打包流程规范,简化了用户操作,将服务生成镜像的流程模板化,极大提高了镜像制作的效率,加快镜像传输部署的速度,支持分层压缩,减小了单个服务容器镜像大小,提高了生产效率,降低了人工成本,解决了现有技术中传统分布式软件部署存在单个服务镜像文件过大,影响镜像的下载和部署速度,生产效率较低,且人工成本较高,费时费力的技术问题。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,该设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(Non-Volatile Memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对该设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及容器镜像文件智能生成程序。
本发明设备通过处理器1001调用存储器1005中存储的容器镜像文件智能生成程序,并执行以下操作:
对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;
获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;
根据所述镜像制作指令生成服务容器镜像文件。
本发明设备通过处理器1001调用存储器1005中存储的容器镜像文件智能生成程序,还执行以下操作:
在基础镜像配置文件中对公共层文件路径镜像设置;
根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息。
本发明设备通过处理器1001调用存储器1005中存储的容器镜像文件智能生成程序,还执行以下操作:
根据用户指令确定公共层的公共基础镜像文件;
在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径;
在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置。
本发明设备通过处理器1001调用存储器1005中存储的容器镜像文件智能生成程序,还执行以下操作:
根据设置后的文件路径扫描识别分布式软件系统整包部署和运行的环境,通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,获取所述分布式软件系统包含的服务列表及名称;
获取操作系统进程列表,将所述操作系统进程列表与所述服务列表进行匹配,获得服务与进程的关联关系;
将所述服务列表及名称、所述服务与进程的关联关系作为服务进程信息。
本发明设备通过处理器1001调用存储器1005中存储的容器镜像文件智能生成程序,还执行以下操作:
通过所述服务进程信息中对应的进程ID对各服务关联进程的运行状态进行扫描,获得各服务关联进程运行时加载的所有动态库的动态特征信息;
在所述动态特征信息中过滤掉操作系统动态库文件以及公共依赖动态库文件;
将过滤后余下的专属依赖动态库信息记录到服务依赖信息文件中。
本发明设备通过处理器1001调用存储器1005中存储的容器镜像文件智能生成程序,还执行以下操作:
读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库;
依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构;
将镜像制作指令文件放置到所述目录结构的根目录。
本发明设备通过处理器1001调用存储器1005中存储的容器镜像文件智能生成程序,还执行以下操作:
根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件;
将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件。
本实施例通过上述方案,通过对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;根据所述镜像制作指令生成服务容器镜像文件,满足了传统的分布式软件基于系统整体打包方式自动过渡到基于单个服务容器镜像打包的软件云化打包方式,能够使得整个打包流程规范,简化了用户操作,将服务生成镜像的流程模板化,极大提高了镜像制作的效率,加快镜像传输部署的速度,支持分层压缩,减小了单个服务容器镜像大小,提高了生产效率,降低了人工成本。
基于上述硬件结构,提出本发明容器镜像文件智能生成方法实施例。
参照图2,图2为本发明容器镜像文件智能生成方法第一实施例的流程示意图。
在第一实施例中,所述容器镜像文件智能生成方法包括以下步骤:
步骤S10、对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息。
需要说明的是,对各服务关联进程的运行状态进行扫描一般是依次对每个服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的动态库信息,输出到服务依赖信息文件,从而通过所述服务依赖信息文件中记录所述专属依赖动态库信息。
步骤S20、获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录。
需要说明的是,一般的,软件本地安装环境中存储有用于制作服务镜像的目录结构,可以从软件本地安装环境中拷贝出可直接用于制作服务镜像的独立文件系统目录结构,从而将镜像制作指令文件置到根目录上,即DockerFile文件放置到所述目录结构的根目录。
步骤S30、根据所述镜像制作指令生成服务容器镜像文件。
需要说明的是,所述镜像制作指令为进行服务镜像生成操作的命令,通过运行所述镜像制作指令生成服务容器镜像文件。
本实施例通过上述方案,通过对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;根据镜像制作指令生成服务容器镜像文件;能够使得整个打包流程规范,简化了用户操作,将服务生成镜像的流程模板化,极大提高了镜像制作的效率,加快镜像传输部署的速度,支持分层压缩,减小了单个服务容器镜像大小,提高了生产效率,降低了人工成本。
进一步地,图3为本发明容器镜像文件智能生成方法第二实施例的流程示意图,如图3所示,基于第一实施例提出本发明容器镜像文件智能生成方法第二实施例,在本实施例中,所述步骤S10之前,所述容器镜像文件智能生成方法还包括以下步骤:
步骤S01、在基础镜像配置文件中对公共层文件路径镜像设置。
需要说明的是,通过所述基础镜像配置文件能够对分布式软件的公共层进行基础镜像的设置,即对公共层文件路径镜像进行设置。
步骤S02、根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息。
可以理解的是,通过所述文件路径可以对服务进程信息进行扫描识别,从而可以对分布式软件系统整包安装的所有服务进程对应的进程信息进行扫描识别。
本实施例通过上述方案,通过在基础镜像配置文件中对公共层文件路径镜像设置;根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息,能够使得整个打包流程规范,简化了用户操作,提高了镜像制作的效率。
进一步地,图4为本发明容器镜像文件智能生成方法第三实施例的流程示意图,如图4所示,基于第二实施例提出本发明容器镜像文件智能生成方法第三实施例,在本实施例中,所述步骤S01具体包括以下步骤:
步骤S011、根据用户指令确定公共层的公共基础镜像文件。
需要说明的是,可以通过用户确定公共层的基础镜像包含的文件内容,即根据用户指令确定公共层的公共基础镜像文件,通过公共基础镜像文件能够支持分层压缩,减小了单个服务容器镜像的大小,一般可以通过软件系统的基础动态库和第三方库或者第三方库单独提出来制作成公共基础镜像,公共基础镜像和服务镜像构成了单个服务部署时的完整镜像,服务镜像中包含服务专属依赖。
在具体实现中,可以根据分布式软件自身软件层次的设计,或者按照分布式软件公用动态库、配置文件以及静态文件规划的规则,一般可以由用户确定公共层的基础镜像包含的文件内容。
步骤S012、在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径。
应当理解的是,在基础镜像的配置文件中可以设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态库文件路径。
步骤S013、在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置。
可以理解的是,若配置的基础镜像文件自身包含多个软件层次,或者基础镜像涉及的文件总大小过大时,则可以继续将公共层分多层基础镜像进行设置,通过将公共层文件路径进行镜像层多层次设置来实现公共层多次基础镜像分层设置。
本实施例通过上述方案,通过根据用户指令确定公共层的公共基础镜像文件;在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径;在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置;满足了传统的分布式软件基于系统整体打包方式自动过渡到基于单个服务容器镜像打包的软件云化打包方式,能够将服务生成镜像的流程模板化,极大提高了镜像制作的效率。
进一步地,图5为本发明容器镜像文件智能生成方法第四实施例的流程示意图,如图5所示,基于第二实施例提出本发明容器镜像文件智能生成方法第四实施例,在本实施例中,所述步骤S02具体包括以下步骤:
步骤S021、根据设置后的文件路径扫描识别分布式软件系统整包部署和运行的环境,通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,获取所述分布式软件系统包含的服务列表及名称。
需要说明的是,通过设置后的文件路径扫描分布式软件系统,从而可以扫描分布式软件系统整包部署和运行的环境,通过读取和分析软件系统本地文件目录中服务相关配置文件,获取软件系统包括的所有服务列表及名称,一般是通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,从而获取所述分布式软件系统包含的服务列表及名称。
步骤S022、获取操作系统进程列表,将所述操作系统进程列表与所述服务列表进行匹配,获得服务与进程的关联关系。
可以理解的是,通过读取和分析操作系统进程列表,能够将所述操作系统进程列表与上面获取的服务列表进行匹配比较,通过比较后可以获取服务与进程的关联关系。
步骤S023、将所述服务列表及名称、所述服务与进程的关联关系作为服务进程信息。
可以理解的是,通过将所述服务列表及名称,所述服务与进程的关联关系作为分布式软件系统整包安装的所有服务进程信息。
本实施例通过上述方案,通过根据设置后的文件路径扫描识别分布式软件系统整包部署和运行的环境,通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,获取所述分布式软件系统包含的服务列表及名称;获取操作系统进程列表,将所述操作系统进程列表与所述服务列表进行匹配,获得服务与进程的关联关系;将所述服务列表及名称、所述服务与进程的关联关系作为服务进程信息;满足了传统的分布式软件基于系统整体打包方式自动过渡到基于单个服务容器镜像打包的软件云化打包方式,能够将服务生成镜像的流程模板化,极大提高了镜像制作的效率。
进一步地,图6为本发明容器镜像文件智能生成方法第五实施例的流程示意图,如图6所示,基于第一实施例提出本发明容器镜像文件智能生成方法第五实施例,在本实施例中,所述步骤S10具体包括以下步骤:
步骤S11、通过所述服务进程信息中对应的进程ID对各服务关联进程的运行状态进行扫描,获得各服务关联进程运行时加载的所有动态库的动态特征信息。
需要说明的是,通过所述服务关联进程的运行状态进行扫描,可以获取单个服务独立运行时所依赖的动态库信息,从而可以输出到服务依赖信息文件中进行记录,相应的,可以根据服务关联的进程ID,从操作系统获取该关联进程当前运行时加载的所有动态库的特征信息。
步骤S12、在所述动态特征信息中过滤掉操作系统动态库文件以及公共依赖动态库文件。
可以理解的是,可以从进程依赖动态库信息中过滤掉操作系统动态库文件,因此可以在依赖动态库信息中的所述动态特征信息中过滤操作系统动态库文件以及公共依赖动态库文件,一般的,可以根据基础镜像配置文件中设置的公共层动态库库文件,从进程依赖动态库信息中过滤掉公共依赖动态库文件。
步骤S13、将过滤后余下的专属依赖动态库信息记录到服务依赖信息文件中。
应当理解的是,过滤后,可以将过滤后余下的专属依赖动态库信息记录到以关联服务命名的服务依赖信息文件中。
本实施例通过上述方案,通过所述服务进程信息中对应的进程ID对各服务关联进程的运行状态进行扫描,获得各服务关联进程运行时加载的所有动态库的动态特征信息;在所述动态特征信息中过滤掉操作系统动态库文件以及公共依赖动态库文件;将过滤后余下的专属依赖动态库信息记录到服务依赖信息文件中,满足了传统的分布式软件基于系统整体打包方式自动过渡到基于单个服务容器镜像打包的软件云化打包方式,能够将服务生成镜像的流程模板化,极大提高了镜像制作的效率。
进一步地,图7为本发明容器镜像文件智能生成方法第六实施例的流程示意图,如图7所示,基于第一实施例提出本发明容器镜像文件智能生成方法第六实施例,在本实施例中,所述步骤S20包括以下步骤:
步骤S21、读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库。
需要说明的是,通过读取平台基础配置文件,可以从本地软件安装路径中,拷贝出基础镜像的内容,同样可以从本地软件安装路径中,拷贝出文件目录结构和服务依赖动态库。
步骤S22、依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构。
可以理解的是,通过依次读取服务依赖信息文件,可以获得各服务名称,通过所述基础镜像的内容及文件目录结构从而创建以服务名为名称的服务镜像内容目录对应的目录结构。
步骤S23、将镜像制作指令文件放置到所述目录结构的根目录。
应当理解的是,可以将镜像制作指令文件放置到根目录上,一般可以将模板DockerFile文件放置到每个服务镜像内容对应的目录结构的根目录。
本实施例通过上述方案,通过读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库;依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构;将镜像制作指令文件放置到所述目录结构的根目录,满足了传统的分布式软件基于系统整体打包方式自动过渡到基于单个服务容器镜像打包的软件云化打包方式,能够将服务生成镜像的流程模板化,极大提高了镜像制作的效率。
进一步地,图8为本发明容器镜像文件智能生成方法第七实施例的流程示意图,如图8所示,基于第一实施例提出本发明容器镜像文件智能生成方法第七实施例,在本实施例中,所述步骤S30包括以下步骤:
步骤S31、根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件。
应当理解的是,通过所述镜像制作指令可以在基础镜像内容的根目录运行所述镜像制作指令文件,生成基础镜像文件,一般是在基础镜像内容的根目录运行DockerFile文件生成基础镜像文件,并且可以在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件,即在每个存放服务镜像内容的根目录运行DockerFile文件生成服务镜像文件。
步骤S32、将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件。
可以理解的是,可以将所述基础镜像文件和所述服务镜像文件进行整合作为所述服务容器镜像文件。
本实施例通过上述方案,通过根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件;将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件,能够使得整个打包流程规范,简化了用户操作,将服务生成镜像的流程模板化,极大提高了镜像制作的效率,加快镜像传输部署的速度,支持分层压缩,减小了单个服务容器镜像大小,提高了生产效率,降低了人工成本。
相应地,本发明进一步提供一种容器镜像文件智能生成装置。
参照图9,图9为本发明容器镜像文件智能生成装置第一实施例的功能模块图。
本发明容器镜像文件智能生成装置第一实施例中,该容器镜像文件智能生成装置包括:
扫描模块10,用于对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息。
放置模块20,用于获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录。
生成模块30,用于根据镜像制作指令生成服务容器镜像文件。
所述扫描模块10,还用于在基础镜像配置文件中对公共层文件路径镜像设置;根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息。
所述扫描模块10,还用于根据用户指令确定公共层的公共基础镜像文件;在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径;在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置。
所述扫描模块10,还用于根据设置后的文件路径扫描识别分布式软件系统整包部署和运行的环境,通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,获取所述分布式软件系统包含的服务列表及名称;获取操作系统进程列表,将所述操作系统进程列表与所述服务列表进行匹配,获得服务与进程的关联关系;将所述服务列表及名称、所述服务与进程的关联关系作为服务进程信息。
所述扫描模块10,还用于通过所述服务进程信息中对应的进程ID对各服务关联进程的运行状态进行扫描,获得各服务关联进程运行时加载的所有动态库的动态特征信息;在所述动态特征信息中过滤掉操作系统动态库文件以及公共依赖动态库文件;将过滤后余下的专属依赖动态库信息记录到服务依赖信息文件中。
所述放置模块20,还用于读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库;依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构;将镜像制作指令文件放置到所述目录结构的根目录。
所述生成模块30,还用于根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件;将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件。
其中,容器镜像文件智能生成装置的各个功能模块实现的步骤可参照本发明容器镜像文件智能生成方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有容器镜像文件智能生成程序,所述容器镜像文件智能生成程序被处理器执行时实现如下操作:
对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;
获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;
根据镜像制作指令生成服务容器镜像文件。
进一步地,所述容器镜像文件智能生成程序被处理器执行时还实现如下操作:
在基础镜像配置文件中对公共层文件路径镜像设置;
根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息。
进一步地,所述容器镜像文件智能生成程序被处理器执行时还实现如下操作:
根据用户指令确定公共层的公共基础镜像文件;
在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径;
在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置。
进一步地,所述容器镜像文件智能生成程序被处理器执行时还实现如下操作:
根据设置后的文件路径扫描识别分布式软件系统整包部署和运行的环境,通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,获取所述分布式软件系统包含的服务列表及名称;
获取操作系统进程列表,将所述操作系统进程列表与所述服务列表进行匹配,获得服务与进程的关联关系;
将所述服务列表及名称、所述服务与进程的关联关系作为服务进程信息。
进一步地,所述容器镜像文件智能生成程序被处理器执行时还实现如下操作:
通过所述服务进程信息中对应的进程ID对各服务关联进程的运行状态进行扫描,获得各服务关联进程运行时加载的所有动态库的动态特征信息;
在所述动态特征信息中过滤掉操作系统动态库文件以及公共依赖动态库文件;
将过滤后余下的专属依赖动态库信息记录到服务依赖信息文件中。
进一步地,所述容器镜像文件智能生成程序被处理器执行时还实现如下操作:
读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库;
依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构;
将镜像制作指令文件放置到所述目录结构的根目录。
进一步地,所述容器镜像文件智能生成程序被处理器执行时还实现如下操作:
根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件;
将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件。
本实施例通过上述方案,通过对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;根据镜像制作指令生成服务容器镜像文件;能够使得整个打包流程规范,简化了用户操作,将服务生成镜像的流程模板化,极大提高了镜像制作的效率,加快镜像传输部署的速度,支持分层压缩,减小了单个服务容器镜像大小,提高了生产效率,降低了人工成本。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种容器镜像文件智能生成方法,其特征在于,所述容器镜像文件智能生成方法,包括:
在基础镜像配置文件中对公共层文件路径镜像设置;
根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息;
对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;
获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;
根据所述镜像制作指令生成服务容器镜像文件;
其中,所述根据所述镜像制作指令生成服务容器镜像文件,包括:
根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件;
将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件;
其中,所述在基础镜像配置文件中对公共层文件路径镜像设置,包括:
根据用户指令确定公共层的公共基础镜像文件;
在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径;
在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置;
其中,所述获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录,包括:
读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库;
依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构;
将镜像制作指令文件放置到所述目录结构的根目录。
2.如权利要求1所述的容器镜像文件智能生成方法,其特征在于,所述根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息,包括:
根据设置后的文件路径扫描识别分布式软件系统整包部署和运行的环境,通过读取并分析所述分布式软件系统的本地文件目录中服务相关配置文件、可执行文件或动态库文件,获取所述分布式软件系统包含的服务列表及名称;
获取操作系统进程列表,将所述操作系统进程列表与所述服务列表进行匹配,获得服务与进程的关联关系;
将所述服务列表及名称、所述服务与进程的关联关系作为服务进程信息。
3.如权利要求1所述的容器镜像文件智能生成方法,其特征在于,所述对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息,包括:
通过所述服务进程信息中对应的进程ID对各服务关联进程的运行状态进行扫描,获得各服务关联进程运行时加载的所有动态库的动态特征信息;
在所述动态特征信息中过滤掉操作系统动态库文件以及公共依赖动态库文件;
将过滤后余下的专属依赖动态库信息记录到服务依赖信息文件中。
4.一种容器镜像文件智能生成装置,其特征在于,所述容器镜像文件智能生成装置包括:
扫描模块,用于在基础镜像配置文件中对公共层文件路径镜像设置;根据设置后的文件路径扫描识别分布式软件系统整包安装的所有服务进程信息;
所述扫描模块,还用于对各服务关联进程的运行状态进行扫描,获取单个服务独立运行时所依赖的专属依赖动态库信息,并在服务依赖信息文件中记录所述专属依赖动态库信息;
放置模块,用于获取用于制作服务镜像的目录结构,将镜像制作指令文件放置到所述目录结构的根目录;
生成模块,用于根据所述镜像制作指令生成服务容器镜像文件;
所述生成模块,还用于根据镜像制作指令在存放基础镜像内容的根目录中运行所述镜像制作指令文件,生成基础镜像文件,在存放服务镜像内容的根目录中运行所述镜像制作指令文件,生成服务镜像文件;将所述基础镜像文件和所述服务镜像文件作为服务容器镜像文件;
所述扫描模块,还用于根据用户指令确定公共层的公共基础镜像文件;在公共基础镜像文件对应的配置文件中,设置基础镜像包含的软件配置文件路径、静态数据文件路径和动态文件路径;在检测到配置后的公共基础镜像文件中包含多个软件层次,或基础镜像涉及的文件总大小过大时,将公共层文件路径进行镜像层多层次设置;
所述放置模块,还用于读取平台基础配置文件,从本地软件安装路径中拷贝出基础镜像的内容、文件目录结构和服务依赖动态库;依次从所述服务依赖动态库中读取所述服务依赖信息文件,获得各服务名称,根据所述基础镜像的内容及文件目录结构创建以各服务名称对应的服务镜像的目录结构;将镜像制作指令文件放置到所述目录结构的根目录。
5.一种容器镜像文件智能生成设备,其特征在于,所述容器镜像文件智能生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的容器镜像文件智能生成程序,所述容器镜像文件智能生成程序配置为实现如权利要求1至3中任一项所述的容器镜像文件智能生成方法的步骤。
6.一种存储介质,其特征在于,所述存储介质上存储有容器镜像文件智能生成程序,所述容器镜像文件智能生成程序被处理器执行时实现如权利要求1至3中任一项所述的容器镜像文件智能生成方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110525774.6A CN113342359B (zh) | 2021-05-13 | 2021-05-13 | 容器镜像文件智能生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110525774.6A CN113342359B (zh) | 2021-05-13 | 2021-05-13 | 容器镜像文件智能生成方法、装置、设备及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN113342359A CN113342359A (zh) | 2021-09-03 |
| CN113342359B true CN113342359B (zh) | 2023-03-24 |
Family
ID=77469680
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202110525774.6A Active CN113342359B (zh) | 2021-05-13 | 2021-05-13 | 容器镜像文件智能生成方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN113342359B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114461271B (zh) * | 2022-04-12 | 2022-06-21 | 梯度云科技(北京)有限公司 | 一种节省存储空间的容器镜像打包方法及装置 |
| CN117971782A (zh) * | 2024-01-29 | 2024-05-03 | 超聚变数字技术有限公司 | 一种镜像管理方法及服务器 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN108415795B (zh) * | 2018-02-12 | 2019-04-05 | 人和未来生物科技(长沙)有限公司 | 一种容器Dockerfile、容器镜像快速生成方法及系统 |
| CN108897527B (zh) * | 2018-05-21 | 2022-04-15 | 东莞理工学院 | 一种云计算中遥感图像处理的Docker镜像自动化动态构建方法 |
| CN110908671A (zh) * | 2018-09-18 | 2020-03-24 | 北京京东尚科信息技术有限公司 | 构建docker镜像的方法、装置及计算机可读存储介质 |
| CN109739616A (zh) * | 2018-12-05 | 2019-05-10 | 国云科技股份有限公司 | 一种云平台容器镜像批量制作方法 |
| CN112306621B (zh) * | 2019-07-24 | 2025-04-18 | 中兴通讯股份有限公司 | 容器分层部署方法及系统 |
| CN110704156A (zh) * | 2019-08-16 | 2020-01-17 | 北京奇艺世纪科技有限公司 | 一种Docker镜像构建方法及装置 |
| CN112486507A (zh) * | 2019-09-12 | 2021-03-12 | 曙光信息产业(北京)有限公司 | 程序的部署方法、装置和计算机设备 |
-
2021
- 2021-05-13 CN CN202110525774.6A patent/CN113342359B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9256467B1 (en) * | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
Also Published As
| Publication number | Publication date |
|---|---|
| CN113342359A (zh) | 2021-09-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8819672B2 (en) | Multi-image migration system and method | |
| CN109783388B (zh) | Ui自动化测试方法、装置及电子设备 | |
| KR101619557B1 (ko) | 커스터마이즈된 컴퓨터 응용 프로그램 패키지 | |
| CN113342359B (zh) | 容器镜像文件智能生成方法、装置、设备及存储介质 | |
| CN107783816A (zh) | 虚拟机的创建方法及装置、大数据集群创建的方法及装置 | |
| CN105893008A (zh) | 一种定制多渠道安装包的方法及装置 | |
| CN108897527A (zh) | 一种云计算中遥感图像处理的Docker镜像自动化动态构建方法 | |
| CN110489812A (zh) | 多层层级网表处理方法、装置、计算机设备及存储介质 | |
| WO2023160327A1 (en) | Container image management | |
| CN113778445A (zh) | 一种跨平台组件生成方法、装置、电子设备及存储介质 | |
| CN114398073B (zh) | 基于rn的应用更新方法及装置 | |
| CN115827101B (zh) | 一种面向地球应用模型的云化集成系统及其方法 | |
| CN108614702A (zh) | 字节码优化方法及装置 | |
| CN112783791B (zh) | 接口测试案例的生成方法及装置 | |
| CN118276848A (zh) | 一种低代码平台的函数自定义方法、装置、设备及介质 | |
| CN116450107A (zh) | 低代码平台二次开发软件的方法、装置、电子设备 | |
| CN115860143A (zh) | 算子模型生成方法、装置和设备 | |
| CN110633250A (zh) | 资源管理系统和方法 | |
| CN112286543B (zh) | 一种应用服务部署方法及装置 | |
| CN113792026A (zh) | 数据库脚本的部署方法、装置及计算机可读存储介质 | |
| CN120315694A (zh) | 一种针对GSCloud的库存代码生成方法、设备及介质 | |
| CN114327770B (zh) | 容器集群管理系统及方法 | |
| CN117369947B (zh) | 一种容器镜像的管理方法和管理系统 | |
| CN118484187A (zh) | 一种Flutter模块的组件自动化配置方法和系统 | |
| CN117971782A (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 |