CN112631737B - 容器镜像构建方法、装置、电子设备及存储介质 - Google Patents
容器镜像构建方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112631737B CN112631737B CN202110024465.0A CN202110024465A CN112631737B CN 112631737 B CN112631737 B CN 112631737B CN 202110024465 A CN202110024465 A CN 202110024465A CN 112631737 B CN112631737 B CN 112631737B
- Authority
- CN
- China
- Prior art keywords
- image
- virtual machine
- container
- mirror
- files
- 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
- 238000010276 construction Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims description 20
- 238000004806 packaging method and process Methods 0.000 claims description 19
- 238000009434 installation Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供的容器镜像构建方法、装置、电子设备及存储介质中,该电子设备通过比较目标虚拟机镜像与基准容器镜像,确定出其中的新增文件。然后,导出新增文件,打包成容器镜像成。由于仅对新增文件进行打包,因此,能够减少冗余的文件,减少容器镜像的体积。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种容器镜像构建方法、装置、电子设备及存储介质。
背景技术
虚拟机是在当前计算机操作系统下通过软件模拟完整的硬件系统功能,以达到在完全隔离环境中运行其他计算机操作系统的目的;
Docker是一个开源的应用容器引擎,Docker中的程序与宿主机共享硬件资源及操作系统内核。
发明人研究发现,当虚拟机与Docker结合使用时,由于Docker的镜像生成工具难以识别虚拟机的文件格式,使得生成的容器镜像中存在文件冗余。
发明内容
为了克服现有技术中的至少一个不足,第一方面,本申请实施例提供一种容器镜像构建方法,应用于电子设备,所述方法包括:
获取目标虚拟机镜像以及基准容器镜像;
将所述目标虚拟机镜像中的文件与所述基准容器镜像中的文件进行比较,确定出所述目标虚拟机镜像中的新增文件;
将所述目标虚拟机镜像中的新增文件打包成容器镜像层;
将所述容器镜像层添加到所述基准容器镜像,获得新基准容器镜像。
第二方面,本申请实施例提供一种容器构建装置,所述容器构建装置包括:
获取模块,用于获取目标虚拟机镜像以及基准容器镜像;
比较模块,用于将所述目标虚拟机镜像中的文件与所述基准容器镜像中的文件进行比较,确定出所述目标虚拟机镜像中的新增文件;
打包模块,用于将所述目标虚拟机镜像中的新增文件打包成容器镜像层,将所述容器镜像层添加到所述基准容器镜像,获得新基准容器镜像。
第三方面,本申请实施例提供一种电子设备,所述电子设备包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序中的计算机可执行指令被所述处理器执行时,实现所述的容器镜像构建方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序中的计算机可执行指令被处理器执行时,实现所述的容器镜像构建方法。
相对于现有技术而言,本申请具有以下有益效果:
本申请实施例提供的容器镜像构建方法、装置、电子设备及存储介质中,该电子设备通过比较目标虚拟机镜像与基准容器镜像,确定出其中的新增文件。然后,导出新增文件,打包成容器镜像成。由于仅对新增文件进行打包,因此,能够减少冗余的文件,减少容器镜像的体积。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的电子设备结构示意图;
图2为本申请实施例提供的容器镜像构建方法流程示意图之一;
图3为本申请实施例提供的容器镜像结构示意图;
图4为本申请实施例提供的容器镜像构建方法流程示意图之二;
图5为本申请实施例提供的容器构建装置结构示意图。
图标:130-处理器;120-存储器;1101-获取模块;1102-比较模块;1103-打包模块。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
发明人研究发现,相关技术中,当虚拟机与Docker结合使用时,由于Docker的镜像生成工具难以识别虚拟机的文件格式,使得生成的容器镜像中存在文件冗余。
示例性的,虚拟机镜像(即虚拟机)的文件格式通常包括raw、qcow2、vmdk、vdi、vhd、qed等格式。
以vmdk格式的虚拟机镜像为例,用户将操作系统安装到通过软件Vmware所模拟的硬件环境中,获得vmdk格式的虚拟机镜像。值得说明的是,新的容器镜像均是基于父镜像生成,即将父镜像作为参考。
当将vmdk格式的虚拟机镜像作为程序打包成容器镜像时,有打包工具难以解析vmdk格式文件,继而无法识别出vmdk格式文件与父镜像之间冗余的文件。
鉴于此,本申请实施例提供一种容器镜像构建方法,应用于电子设备。该电子设备通过比较目标虚拟机镜像与基准容器镜像,确定出其中的新增文件。然后,导出新增文件,打包成容器镜像成。
由于仅对新增文件进行打包,因此,能够减少冗余的文件,减少容器镜像的体积。
其中,该电子设备可以是,但不限于,服务器、个人电脑(Personal Computer,PC)等。请参照图1,本申请实施例提供一种该电子设备的结构示意图。如图1所示,该电子设备包括存储器120以及处理器130。
其中,该存储器120、处理器130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,该存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器120用于存储程序,该处理器130在接收到执行指令后,执行该程序。
该处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
进一步地,请参照图2,本申请实施例还提供该容器构造方法流程示意图。下面结合图2对上述容器构造方法的各步骤进项详细阐述。如图2所示,该容器构造方法还包括:
步骤S101,获取目标虚拟机镜像以及基准容器镜像。
步骤S102,将目标虚拟机镜像中的文件与基准容器镜像中的文件进行比较,确定出目标虚拟机镜像中的新增文件。
步骤S103,将目标虚拟机镜像中的新增文件打包成容器镜像层。
步骤S104,将容器镜像层添加到基准容器镜像,获得新基准容器镜像。
基于上述步骤,该电子设备通过比较目标虚拟机镜像与基准容器镜像,确定出其中的新增文件。然后,导出新增文件,打包成容器镜像成。由于仅对新增文件进行打包,因此,能够减少冗余的文件,减少容器镜像的体积。
其中,该目标虚拟机镜像为虚拟机基于原始操作系统生成的镜像文件,原始操作系统与待转换虚拟机镜像中的操作系统相同。其中,示例性的,该待转换虚拟机镜像可以为上述vmdk格式的虚拟机镜像。vmdk格式的虚拟机镜像,可以通过vmware-mount命令打开并读取目标虚拟机镜像中的文件,并且,还可以通过linux操作系统中的cmp命令,将目标虚拟机镜像中的文件与基准容器镜像中的文件进行比较。
为了方便阐述清楚本方案,下面先结合图3对容器镜像的结构进行介绍。如图3所示,容器镜像通常包括bootfs层、rootfs层(基础镜像层,可以包括ubuntu或者centos等操作系统)、应用镜像层(包括JDK镜像层、tomcat镜像层等)。其中,每个镜像层基于前上一镜像层(例如,JDK镜像层基于bootfs层、rootfs层)构建。
本申请实施例中,需要将待转换虚拟机镜像转换成容器镜像,以减少直接将整个虚拟机镜像文件转换成某个容器镜像层所带来的冗余。
该电子设备先根据基础镜像层,生成一基准容器镜像;然后,针对待转换虚拟机镜像中的原始操作系统(例如,ubuntu或者centos),该电子设备先获取原始操作系统;根据原始操作系统,生成目标虚拟机镜像。
其中,在生成基准容器镜像时,该基准容器镜像的配置文件(即Dockerfile)中记录虚拟机配置信息;该电子设备可以基于虚拟机配置信息,安装原始操作系统;并从预设的安装路径获取该目标虚拟机镜像。
当然,该配置文件还可以记录留磁盘固有信息,例如,虚拟机镜像格式,虚拟机镜像大小,文件名,分区,每个分区的文件系统等。以尽量使得虚拟机运行软件能够正常运行原始操作系统。
进一步地,基于上述原始操作系统的安装镜像,考虑到该待转换虚拟机镜像中安装有预设数量的应用程序。下面结合图4,介绍如何分离出该待转换虚拟机镜像中的各应用程序。
步骤S105,从应用程序中选取至少一个未安装的应用程序安装到目标虚拟机镜像,获得临时虚拟机镜像。
步骤S106,将临时虚拟机镜像中的文件与新基准容器镜像中的文件进行比较,确定出临时虚拟机镜像中的新增文件。
步骤S107,将临时虚拟机镜像中的新增文件打包成新容器镜像层。
步骤S108,将新容器镜像层添加到新基准容器镜像,获得临时容器镜像。
步骤S109,判断临时虚拟机是否安装了预设数量的应用程序。
步骤S110,若否,则将临时虚拟机镜作为目标虚拟机镜像,将临时容器镜像作为新基准容器镜像,返回到步骤S105。
步骤S111,若是,则将临时容器镜像作为待转换虚拟机镜像的容器转换结果。
示例性的,该待转换虚拟机镜像中包括程序A、程序B、程序C。该电子设备将启动虚拟机软件启动,以运行目标虚拟机镜像,然后,将程序A安装到目标虚拟机镜像的原始操作系统中;安装完成后,关闭虚拟机软件;获得安装了程序A的临时虚拟机镜像。
进一步地,该电子设备将临时虚拟机镜像中的文件与新基准容器镜像中的文件进行比较,确定出临时虚拟机镜像中的新增文件。其中,该新增文件即为程序A的程序文件。
然后,该电子设备将程序A的新增文件打包成新容器镜像层,添加到新基准容器镜像中,获得临时容器镜像。
由于还剩余程序B、程序C,因此,该电子设备将临时容器镜像作为新基准容器镜;将临时虚拟机镜像作为目标虚拟机镜像。
进一步地,该电子设备启动虚拟机软件启动,运行目标虚拟机镜像,将程序B安装到目标虚拟机镜像的原始操作系统中;安装完成后,关闭虚拟机软件,获得临时虚拟机镜像。此时,该临时虚拟机镜像中的原始操作系统安装了程序A与程序B。
该电子设备将临时虚拟机镜像中的文件与新基准容器镜像中的文件进行比较,确定出临时虚拟机镜像中的新增文件。其中,该新增文件即为程序B的程序文件。
然后,该电子设备将程序B的新增文件打包成新容器镜像层,添加到新基准容器镜像中,获得临时容器镜像。
以此类推,将程序C的新增文件打包成新容器镜像,最终获得待转换虚拟机镜像的容器转换结果。
值得说明的,应用程序在安装时包括数据文件、可执行程序文件以及配置文件等;并且,不同的应用程序之间,其安装路径也各不相同。因此,本申请实施例中,该电子设备在原始操作系统的基础上,安装应用程序,即该原始操作系统的虚拟镜像文件中,新增文件即为该应用程序的安装文件。
如此,可以避免生成容器镜像层时,漏掉部分文件;并且,容器镜像层中携带了应用程序的安装配置信息,将容器镜像层拉去到容器中运行时,能够尽可能的减少运行异常。
基于与容器镜像构建方法相同的发明构思,本申请实施例还提供一种容器构建装置。容器构建装置包括至少一个可以软件形式存储于存储器中的功能模块。请参照图5,从功能上划分,容器构建装置可以包括:
获取模块1101,用于获取目标虚拟机镜像以及基准容器镜像。
本申请实施例中,该获取模块1101对应计算机可执行指令被处理器执行时,实现图2中的步骤S101,关于该获取模块1101的详细描述,可以参考步骤S101的详细描述。
比较模块1102,用于将目标虚拟机镜像中的文件与基准容器镜像中的文件进行比较,确定出目标虚拟机镜像中的新增文件。
本申请实施例中,该比较模块1102对应计算机可执行指令被处理器执行时,实现图2中的步骤S102,关于该比较模块1102的详细描述,可以参考步骤S102的详细描述。
打包模块1103,用于将目标虚拟机镜像中的新增文件打包成容器镜像层,将容器镜像层添加到基准容器镜像,获得新基准容器镜像。
本申请实施例中,该打包模块1103对应计算机可执行指令被处理器执行时,实现图2中的步骤S103-S104,关于该打包模块1103的详细描述,可以参考步骤S103-S104的详细描述。
在一种可能实现方式中,目标虚拟机镜像为原始操作系统的安装镜像,原始操作系统与待转换虚拟机镜像中的操作系统相同,基准容器镜像为基础镜像层的打包镜像,获取模块1101具体用于:
获取原始操作系统;
根据原始操作系统,生成目标虚拟机镜像。
在一种可能实现方式中,基准容器镜像携带有虚拟机配置信息,获取模块1101还具体用于:
获取虚拟机配置信息;
根据虚拟机配置信息,安装原始操作系统;
从预设安装路径获得目标虚拟机镜像。
在一种可能实现方式中,待转换虚拟机镜像安装有预设数量的应用程序;
获取模块1101,还用于从应用程序中选取至少一个未安装的应用程序安装到目标虚拟机镜像,获得临时虚拟机镜像;
比较模块1102,还用于将临时虚拟机镜像中的文件与新基准容器镜像中的文件进行比较,确定出临时虚拟机镜像中的新增文件;
打包模块1103,还用于将临时虚拟机镜像中的新增文件打包成新容器镜像层;将新容器镜像层添加到新基准容器镜像,获得临时容器镜像;
判断临时虚拟机是否安装了预设数量的应用程序;
若否,则将临时虚拟机镜作为目标虚拟机镜像,将临时容器镜像作为新基准容器镜像,返回到从应用程序中选取至少一个未安装的应用程序安装到目标虚拟机镜像的步骤;
若是,则将临时虚拟机作为待转换虚拟机镜像的容器转换结果。
综上所述,本申请实施例提供的容器镜像构建方法、装置、电子设备及存储介质中,该电子设备通过比较目标虚拟机镜像与基准容器镜像,确定出其中的新增文件。然后,导出新增文件,打包成容器镜像成。由于仅对新增文件进行打包,因此,能够减少冗余的文件,减少容器镜像的体积。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (6)
1.一种容器镜像构建方法,其特征在于,应用于电子设备,所述方法包括:
获取基准容器镜像,其中,所述基准容器镜像为基础镜像层的打包镜像;
获取原始操作系统;根据所述原始操作系统,生成目标虚拟机镜像,所述原始操作系统与待转换虚拟机镜像中的操作系统相同,所述待转换虚拟机镜像安装有预设数量的应用程序;
通过vmware mount命令打开并读取所述目标虚拟机镜像中的文件,将所述目标虚拟机镜像中的文件与所述基准容器镜像中的文件通过linux操作系统中的cmp命令进行比较,确定出所述目标虚拟机镜像中的新增文件;
将所述目标虚拟机镜像中的新增文件打包成容器镜像层;
将所述容器镜像层添加到所述基准容器镜像,获得新基准容器镜像;
从所述应用程序中选取至少一个未安装的应用程序安装到所述目标虚拟机镜像,获得临时虚拟机镜像;
通过vmware mount命令打开并读取所述临时虚拟机镜像中的文件,将所述临时虚拟机镜像中的文件与所述新基准容器镜像中的文件通过linux操作系统中的cmp命令进行比较,确定出所述临时虚拟机镜像中的新增文件;
将所述临时虚拟机镜像中的新增文件打包成新容器镜像层;
将所述新容器镜像层添加到所述新基准容器镜像,获得临时容器镜像;
判断所述临时虚拟机是否安装了所述预设数量的应用程序;
若否,则将所述临时虚拟机镜作为所述目标虚拟机镜像,将所述临时容器镜像作为所述新基准容器镜像,返回到从所述应用程序中选取至少一个未安装的应用程序安装到所述目标虚拟机镜像的步骤;
若是,则将所述临时容器镜像作为所述待转换虚拟机镜像的容器转换结果。
2.根据权利要求1所述的容器镜像构建方法,其特征在于,所述基准容器镜像携带有虚拟机配置信息,所述根据所述原始操作系统,生成所述目标虚拟机镜像,包括:
获取所述虚拟机配置信息;
根据所述虚拟机配置信息,安装所述原始操作系统;
从预设安装路径获得所述目标虚拟机镜像。
3.一种容器构建装置,其特征在于,所述容器构建装置包括:
获取模块,用于获取基准容器镜像,其中,所述基准容器镜像为基础镜像层的打包镜像
获取模块,还用于获取原始操作系统;根据所述原始操作系统,生成目标虚拟机镜像,所述原始操作系统与待转换虚拟机镜像中的操作系统相同,所述待转换虚拟机镜像安装有预设数量的应用程序;
比较模块,用于通过vmware mount命令打开并读取所述目标虚拟机镜像中的文件,将所述目标虚拟机镜像中的文件与所述基准容器镜像中的文件通过linux操作系统中的cmp命令进行比较,确定出所述目标虚拟机镜像中的新增文件;
打包模块,用于将所述目标虚拟机镜像中的新增文件打包成容器镜像层,将所述容器镜像层添加到所述基准容器镜像,获得新基准容器镜像;
所述获取模块,还用于从所述应用程序中选取至少一个未安装的应用程序安装到所述目标虚拟机镜像,获得临时虚拟机镜像;
所述比较模块,还用于通过vmware mount命令打开并读取所述临时虚拟机镜像中的文件,将所述临时虚拟机镜像中的文件与所述新基准容器镜像中的文件通过linux操作系统中的cmp命令进行比较,确定出所述临时虚拟机镜像中的新增文件;
所述打包模块,还用于将所述临时虚拟机镜像中的新增文件打包成新容器镜像层;将所述新容器镜像层添加到所述新基准容器镜像,获得临时容器镜像;
判断所述临时虚拟机是否安装了所述预设数量的应用程序;
若否,则将所述临时虚拟机镜作为所述目标虚拟机镜像,将所述临时容器镜像作为所述新基准容器镜像,返回到从所述应用程序中选取至少一个未安装的应用程序安装到所述目标虚拟机镜像的步骤;
若是,则将所述临时虚拟机作为所述待转换虚拟机镜像的容器转换结果。
4.根据权利要求3所述的容器构建装置,其特征在于,所述基准容器镜像携带有虚拟机配置信息,所述获取模块还具体用于:
获取所述虚拟机配置信息;
根据所述虚拟机配置信息,安装所述原始操作系统;
从预设安装路径获得所述目标虚拟机镜像。
5.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序中的计算机可执行指令被所述处理器执行时,实现权利要求1-2任意一项所述的容器镜像构建方法。
6.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序中的计算机可执行指令被处理器执行时,实现权利要求1-2任意一项所述的容器镜像构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110024465.0A CN112631737B (zh) | 2021-01-08 | 2021-01-08 | 容器镜像构建方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110024465.0A CN112631737B (zh) | 2021-01-08 | 2021-01-08 | 容器镜像构建方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112631737A CN112631737A (zh) | 2021-04-09 |
CN112631737B true CN112631737B (zh) | 2023-11-17 |
Family
ID=75294012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110024465.0A Active CN112631737B (zh) | 2021-01-08 | 2021-01-08 | 容器镜像构建方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112631737B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113347258B (zh) * | 2021-06-04 | 2023-02-07 | 上海天旦网络科技发展有限公司 | 云流量下的数据采集监控分析的方法及系统 |
CN114461271B (zh) * | 2022-04-12 | 2022-06-21 | 梯度云科技(北京)有限公司 | 一种节省存储空间的容器镜像打包方法及装置 |
CN114721699B (zh) * | 2022-05-19 | 2022-08-26 | 龙芯中科技术股份有限公司 | 一种镜像升级方法、装置、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511943A (zh) * | 2015-12-03 | 2016-04-20 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
CN107004032A (zh) * | 2016-11-17 | 2017-08-01 | 华为技术有限公司 | 镜像文件转换方法及装置 |
CN107015995A (zh) * | 2016-01-28 | 2017-08-04 | 华为技术有限公司 | 一种镜像文件的修改方法和装置 |
CN107766130A (zh) * | 2016-08-22 | 2018-03-06 | 中国电信股份有限公司 | 虚拟机向容器迁移的方法和装置 |
CN111078229A (zh) * | 2019-12-20 | 2020-04-28 | 北京天融信网络安全技术有限公司 | 一种应用程序处理方法、装置、存储介质及电子设备 |
CN111414231A (zh) * | 2020-03-18 | 2020-07-14 | 上海云轴信息科技有限公司 | 一种虚拟机镜像与容器镜像相互转换的方法及设备 |
CN111666129A (zh) * | 2020-06-03 | 2020-09-15 | 科东(广州)软件科技有限公司 | 容器镜像处理方法、电子设备、存储介质及系统 |
CN112162822A (zh) * | 2020-09-27 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种镜像构建方法、装置、设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260229A (zh) * | 2015-10-28 | 2016-01-20 | 北京百度网讯科技有限公司 | 拉取虚拟机镜像文件的方法和装置 |
US20180088973A1 (en) * | 2016-09-25 | 2018-03-29 | Dinesh Subhraveti | Methods and systems for interconversions among virtual machines, containers and container specifications |
US10725808B2 (en) * | 2017-01-04 | 2020-07-28 | International Business Machines Corporation | Virtual machine image conversion |
-
2021
- 2021-01-08 CN CN202110024465.0A patent/CN112631737B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511943A (zh) * | 2015-12-03 | 2016-04-20 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
WO2017092672A1 (zh) * | 2015-12-03 | 2017-06-08 | 华为技术有限公司 | 一种Docker容器运行方法和装置 |
CN107015995A (zh) * | 2016-01-28 | 2017-08-04 | 华为技术有限公司 | 一种镜像文件的修改方法和装置 |
CN107766130A (zh) * | 2016-08-22 | 2018-03-06 | 中国电信股份有限公司 | 虚拟机向容器迁移的方法和装置 |
CN107004032A (zh) * | 2016-11-17 | 2017-08-01 | 华为技术有限公司 | 镜像文件转换方法及装置 |
CN111078229A (zh) * | 2019-12-20 | 2020-04-28 | 北京天融信网络安全技术有限公司 | 一种应用程序处理方法、装置、存储介质及电子设备 |
CN111414231A (zh) * | 2020-03-18 | 2020-07-14 | 上海云轴信息科技有限公司 | 一种虚拟机镜像与容器镜像相互转换的方法及设备 |
CN111666129A (zh) * | 2020-06-03 | 2020-09-15 | 科东(广州)软件科技有限公司 | 容器镜像处理方法、电子设备、存储介质及系统 |
CN112162822A (zh) * | 2020-09-27 | 2021-01-01 | 北京浪潮数据技术有限公司 | 一种镜像构建方法、装置、设备及可读存储介质 |
Non-Patent Citations (3)
Title |
---|
A Performance Study of Containers in Cloud Environment;Song Wu 等;《Advances in Services Computing》;343-356 * |
基于Docker的CaaS管理平台架构研究与设计;张琦;《计算机应用与软件》;第35卷(第11期);33-41, 54 * |
基于容器云的网络建模与仿真关键技术研究;张沛华;《中国优秀硕士学位论文全文数据库 信息科技辑》(第10期);I139-26 * |
Also Published As
Publication number | Publication date |
---|---|
CN112631737A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112631737B (zh) | 容器镜像构建方法、装置、电子设备及存储介质 | |
US11636090B2 (en) | Method and system for graph-based problem diagnosis and root cause analysis for IT operation | |
JP6334733B2 (ja) | ユーザの操作行為に基いて解決策をレコメンドする方法および装置 | |
US20160261459A1 (en) | Package dependency maps for distributed computing | |
CN112346818A (zh) | 一种容器应用部署方法、装置、电子设备和存储介质 | |
CN111130897A (zh) | 报警日志监控方法、系统、电子设备及可读存储介质 | |
US11631011B2 (en) | Automatically remediating storage device issues using machine learning techniques | |
CN107918543B (zh) | 安装包生成的方法、装置、计算机设备和存储介质 | |
US9830177B1 (en) | Computer implemented method and system, and computer program product, for determining compliance with a configuration parameter before deployment of a virtual appliance into a network appliance | |
CN112230947A (zh) | 一种操作系统的升级方法、升级系统 | |
CN111104129B (zh) | 内存操作系统制作方法、装置、电子设备和存储介质 | |
CN115599618B (zh) | 寄存器动态改配验证方法、装置、存储介质和处理器 | |
CN116719696A (zh) | 应用程序接口数据的监控方法、装置、设备及存储介质 | |
CN115454403A (zh) | 页面搭建方法、装置及存储介质 | |
CN111382079B (zh) | 应用程序现场还原的方法、装置、设备及存储介质 | |
CN111176653B (zh) | 程序编译合包方法、装置、电子设备及存储介质 | |
CN110888649B (zh) | 应用部署方法、应用基线的创建方法和装置 | |
CN111273940B (zh) | 将程序文件上传至代码仓库的方法及装置 | |
CN111125565A (zh) | 一种在应用中输入信息的方法与设备 | |
CN111913720A (zh) | 一种程序部署方法及装置 | |
CN112579145A (zh) | 应用部署方法及装置 | |
CN110908876A (zh) | 一种硬件性能数据的获取方法及装置 | |
CN111682991B (zh) | 总线错误消息的处理方法及装置 | |
CN117215965B (zh) | 基于测试用例识别的测试方法、装置、电子设备和介质 | |
CN116339865A (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 |