CN110413455A - 容器镜像处理方法、装置、计算机设备和存储介质 - Google Patents
容器镜像处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110413455A CN110413455A CN201910626226.5A CN201910626226A CN110413455A CN 110413455 A CN110413455 A CN 110413455A CN 201910626226 A CN201910626226 A CN 201910626226A CN 110413455 A CN110413455 A CN 110413455A
- Authority
- CN
- China
- Prior art keywords
- mirror image
- complete
- deleted
- carry
- compressed
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000006835 compression Effects 0.000 claims abstract description 25
- 238000007906 compression Methods 0.000 claims abstract description 25
- 238000012217 deletion Methods 0.000 claims abstract description 11
- 230000037430 deletion Effects 0.000 claims abstract description 11
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 22
- 238000005516 engineering process Methods 0.000 description 8
- 235000009854 Cucurbita moschata Nutrition 0.000 description 5
- 240000001980 Cucurbita pepo Species 0.000 description 5
- 235000009852 Cucurbita pepo Nutrition 0.000 description 5
- 235000020354 squash Nutrition 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005194 fractionation Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000010408 sweeping Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- 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
Abstract
本发明公开了一种容器镜像处理方法、装置、计算机设备和存储介质。其中,该方法包括:获取用于生成容器镜像的所需文件信息,并根据所需文件信息构建完整镜像;确定完整镜像中的待删除的指定目录,并基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像;获取待删除的指定目录的目录内容,基于待删除的目录内容生成待挂载内容;将待挂载内容存储至块设备文件系统,并将压缩后的镜像挂载至块设备文件系统。该方法通过将构建的完整镜像中的指定目录进行删除以达到压缩镜像,并将删除的指定目录的目录内容作为待挂载内容存储到块设备文件系统中,将压缩后的镜像挂载至块设备文件系统,减小了待分发的镜像文件大小,加快容器镜像的分发速度。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种容器镜像处理方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着企业数字化大潮的席卷,容器技术正如狂风暴雨般改变着行业的基础设施架构,行业应用纷纷朝微服务架构演进,并通过云化平台优化业务管理。为了获得更高效率的云服务,容器技术自诞生以来便受到了业界的广泛支持。通过优秀的隔离技术,容器可以借由启动不同的运行时从而对不同的应用提供支持。但在实际应用中,随着镜像体积的快速增长以及不同镜像数量的增多,容器环境下的镜像分发逐渐成为了一个令云服务管理者关键问题。
相关技术中,主要通过以下两种方式来实现对大镜像的分发处理:第一种方式,通过对镜像功能的拆分,将体积较大的大镜像分解成多个具备子功能的小镜像,用户需要选择每次启动所对应的镜像,一定程度上缓解了大镜像的分发过慢的问题;第二种方式,通过网络文件系统挂载的方式,将大镜像中的需要的部分功能模块挂载至网络文件系统中,从而达到缩减镜像大小的目的。
但是,上述两种方法特点不同,所带来的问题和不足也有所不同:第一种通过镜像拆解的方式,可以缩减单个镜像的大小,但是整体上镜像大小并没有缩减,当出现高并发的拉取操作时,由于整体镜像体积并未减少,带来的网络资源压力是相等的,并未从根本上解决镜像分发的问题;同时,镜像的维护和运维成本也增加,需要同时维护多个镜像,当遇到镜像功能更新的场景时,运维更新成本相对之前反而是成倍增加的;第二种通过网络文件系统挂载的方式,可以缩减镜像大小,但是存在的问题是,用户使用镜像中相应的功能时,由访问本地磁盘变成了访问远端的网络文件系统,由于网络传输的延迟,会导致用户的使用体验下降。
发明内容
本发明的目的旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种容器镜像处理方法,该方法减小待分发的镜像文件体积大小,从而可以加快容器镜像的分发速度,且访问块设备文件系统不需要经过网络,加快了容器镜像内部调用功能速度。
本发明的第二个目的在于提出一种容器镜像处理装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种计算机可读存储介质。
为达到上述目的,本发明第一方面实施例提出的一种容器镜像处理方法,包括:获取用于生成容器镜像的所需文件信息,并根据所述所需文件信息构建完整镜像;确定所述完整镜像中的待删除的指定目录,并基于所述待删除的指定目录对所述完整镜像进行压缩,得到压缩后的镜像;获取所述待删除的指定目录的目录内容,基于所述待删除的目录内容生成待挂载内容;将所述待挂载内容存储至块设备文件系统,并将所述压缩后的镜像挂载至所述块设备文件系统。
根据本发明实施例的容器镜像处理方法,可获取用于生成容器镜像的所需文件信息,并根据所需文件信息构建完整镜像,然后确定完整镜像中的待删除的指定目录,并基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像,获取待删除的指定目录的目录内容,基于待删除的目录内容生成待挂载内容,之后将待挂载内容存储至块设备文件系统,并将压缩后的镜像挂载至块设备文件系统,该方法通过将构建的完整镜像中的指定目录进行删除以达到压缩镜像,并将删除的指定目录的目录内容作为待挂载内容存储到块设备文件系统中,进而将压缩后的镜像挂载至块设备文件系统,减小了待分发的镜像文件大小,可以加快容器镜像的分发速度,并且通过访问块设备文件系统上的镜像中指定目录内容无需经过网络,提高了容器镜像内部调用功能速度。
为达到上述目的,本发明第二方面实施例提出的一种容器镜像分发装置,包括:完整镜像构成模块,用于获取用于生成容器镜像的所需文件信息,并根据所述所需文件信息构建完整镜像;镜像压缩模块,用于确定所述完整镜像中的待删除的指定目录,并基于所述待删除的指定目录对所述完整镜像进行压缩,得到压缩后的镜像;待挂载内容获取模块,用于获取所述待删除的指定目录的目录内容,基于所述待删除的目录内容生成待挂载内容;镜像挂载模块,用于将所述待挂载内容存储至块设备文件系统,并将所述压缩后的镜像挂载至所述块设备文件系统。
根据本发明实施例的容器镜像处理装置,可获取用于生成容器镜像的所需文件信息,并根据所需文件信息构建完整镜像,然后确定完整镜像中的待删除的指定目录,并基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像,获取待删除的指定目录的目录内容,基于待删除的目录内容生成待挂载内容,之后将待挂载内容存储至块设备文件系统,并将压缩后的镜像挂载至块设备文件系统,由此,通过将构建的完整镜像中的指定目录进行删除以达到压缩镜像,并将删除的指定目录的目录内容作为待挂载内容存储到块设备文件系统中,进而将压缩后的镜像挂载至块设备文件系统,减小了待分发的镜像文件大小,可以加快容器镜像的分发速度,并且通过访问块设备文件系统上的镜像中指定目录内容无需经过网络,提高了容器镜像内部调用功能速度。
为达到上述目的,本发明第三方面实施例提出的计算机设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本发明第一方面实施例所述的容器镜像处理方法。
为达到上述目的,本发明第四方面实施例提出的计算机可读存储介质,所述计算机程序被处理器执行时实现本发明第一方面实施例所述的容器镜像处理方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的容器镜像处理方法的流程图。
图2是根据本发明一个具体实施例的容器镜像处理方法的流程图。
图3是根据本发明一个具体实施例的容器镜像处理方法的流程图。
图4是根据本发明一个实施例的容器镜像处理装置的结构示意图。
图5是根据本发明一个实施例的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
随着企业数字化大潮的席卷,容器技术正如狂风暴雨般改变着行业的基础设施架构,行业应用纷纷朝微服务架构演进,并通过云化平台优化业务管理。为了获得更高效率的云服务,容器技术自诞生以来便受到了业界的广泛支持。通过优秀的隔离技术,容器可以借由启动不同的运行时从而对不同的应用提供支持。但在实际应用中,随着镜像体积的快速增长以及不同镜像数量的增多,容器环境下的镜像分发逐渐成为了一个令云服务管理者关键问题。容器技术令应用程序的配置与部署工作效率极大提高,但其在利用数据中心存储与网络容量进行容器镜像的大规模分发时往往表现得比较不尽如人意。根本原因在于Docker(应用容器引擎)镜像的存储与下载方式上。从传统角度讲,存储在库中的每套镜像都必须拥有与其各层相关的全部文件,这意味着对任意主机设备上的Docker镜像进行更新,我们就需要从该库中下载完整的镜像,Docker提供了layers(镜像层)缓存机制,能在一定程度上避免更新时下载完整镜像,但实际情况中,并不能保证每次均新增layers,而不更新原始的底层layers,一旦对底层layers进行更新,则会触发对完整镜像的拉取。DockerRegistry(通过验证持证人token和嵌入在其中的声明集来授权客户端)的镜像分发采用的是一对多机制,即容器系统部署任务的pull(拉取)请求到达Docker Registry之后,DockerRegistry需要统一处理,将同一个镜像分发给N个节点,此时的输出流量即使镜像的体积乘以容器系统的数量ImageSize*N,ImageSize表示镜像体积大小。在面对小型Web(网页)应用中的少量容器时,这种机制似乎构不成什么大问题。然而一旦容器系统数量增长至数百、数千乃至数百万之巨时,那么库的体积就会随着容器系统的增加而不断攀升,而每一次更新所需要下载的数据量也会越来越大。与此同时,单个Docker镜像体积增大导致镜像的下载流量也将提升至数GB,应用发布过程中需要下载镜像文件,如果同时有大量机器需要发布,比如1000台,按照5GB大小的镜像文件计算,如果直接从镜像仓库下载,假设镜像仓库的带宽是10000Mbps,那么理想状态下至少需要68分钟。就出现了容器镜像分发过慢的问题。
相关技术中,大镜像的分发目前普遍采用如下两种方法来解决:
(1)通过对镜像功能的拆分,将大镜像分解成多个具备子功能的小镜像,用户需要选择每次启动所对应的镜像,一定程度上缓解了大镜像的分发过慢的问题;(2)通过网络文件系统挂载的方式,将镜像中的需要的部分功能模块挂载至网络文件系统中,从而达到缩减镜像大小的目的。
发明人在实现本发明的过程中,发现上述两种方法特点不同,所带来的问题和不足也有所不同:方法(1)通过镜像拆解的方式,缩减单个镜像的大小,但整体上镜像大小并没有缩减,当出现高并发的拉取操作的时,由于整体镜像体积并未减少,带来的网络资源压力是相等的,并未从根本上解决镜像分发的问题。同时,镜像的维护和运维成本也增加,需要同时维护多个镜像,当遇到镜像功能更新的场景时,运维更新成本相对之前反而是成倍增加的;方法(2)通过网络文件系统挂载的方式,缩减镜像大小,存在的问题是,用户使用镜像中相应的功能时,由访问本地磁盘变成了访问远端的网络文件系统,由于网络传输的延迟,会导致用户的使用体验下降。
为了解决上述技术问题,本发明提出了一种容器镜像处理方法、装置、计算机设备和存储介质,本申请解决了相关技术中容器镜像体积过大引起的分发速度慢及网络文件系统挂载方式导致容器镜像功能延迟过大的技术问题。具体地,下面参考附图描述本发明实施例的容器镜像处理方法、装置、计算机设备和计算机可读存储介质。
图1是根据本发明一个实施例的容器镜像处理方法的流程图。需要说明的是,本发明实施例的容器镜像处理方法可应用于本发明实施例的容器镜像处理装置,该装置可被配置于计算机设备上。
如图1所示,该容器镜像处理方法可以包括:
S110,获取用于生成容器镜像的所需文件信息,并根据所需文件信息构建完整镜像。
例如,在生成一个应用程序的镜像文件时,获取构成该应用程序的镜像文件所需的文件信息,并基于该所需文件信息构建对应的完整镜像,其中,文件信息包括但不仅限于软件包等信息。
为了方便后续方便获取待挂载内容,可选地,在本发明的一个实施例中,在构建完整镜像时,还可分析所述所需文件信息,并确定出占用空间大于预设阈值的文件信息,将该占用空间大于预设阈值的文件信息安装在完整镜像内指定的父级目录下。
举例而言,在构建完整镜像时,需分析镜像包含的软件包等信息,然后确定出占用空间大于预设阈值的软件包,将占用空间较大的软件包安装在完整镜像内指定的父级目录下。
S120,确定完整镜像中的待删除的指定目录,并基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像。
其中,在本发明的实施例中,可将所述指定的父级目录确定为完整镜像中的待删除的指定目录。也就是说,将完整镜像中占用空间较大的文件信息所在的父级目录确定为该完整镜像的待删除指定目录,之后,可基于该待删除指定目录对该完整镜像进行压缩,以得到压缩后的镜像。
可选地,所述基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像的具体实现过程可如下:基于完整镜像,新增一层镜像层,并通过该新增的镜像层将完整镜像中的待删除的指定目录删除清空,得到新的镜像,之后采用应用容器引擎的压缩机制,将得到的新镜像进行压缩合并,以使新镜像中的镜像层合并至一层,得到压缩后的镜像。
其中,在本发明的实施例中,采用的应用容器引擎的压缩机制可为Docker的Squash压缩机制。
也就是说,基于构建完成的完整镜像,新增一层镜像层layers,该新增层的操作可用于将构建完整镜像过程中选定的软件包安装位置的父级目录删除清空,新增层可理解为将完整镜像中待删除的指定目录替换成新增层,从而得到一个新的镜像,然后利用Docker的Squash压缩机制,将得到的新镜像进行Squash压缩合并,将完整镜像和新增镜像层合并至一层,得到压缩后的镜像,由于将镜像中占用空间较大的目录内容全部删除以作为待挂载内容,所以可以使得压缩后的镜像大小通常为百MB级别。
S130,获取待删除的指定目录的目录内容,基于待删除的目录内容生成待挂载内容。
例如,在构建完整镜像时,确定完整镜像中的待删除的指定目录,进而可获得该待删除的指定目录的目录内容,进而可将该待删除的指定目录的目录内容作为该待挂载内容。
S140,将待挂载内容存储至块设备文件系统,并将压缩后的镜像挂载至块设备文件系统。
其中,在本发明的实施例中,块设备可理解为块存储设备,该块存储设备可以看作是本地磁盘。在本步骤中,可将该待挂载内容存储至块设备文件系统中,并在所述压缩后的镜像中增加一个挂载点,并通过该挂载点将所述压缩后的镜像挂载至块设备文件系统中,以供镜像启动时自动挂载。
由此可见,本发明实施例通过将镜像中指定目录挂载至块存储设备,通过docker的squash机制压缩镜像,将镜像体积压缩至百MB级别,当进行镜像分发时,相同的网络资源下,可以做到更快的拉取更多的镜像,解决镜像快速分发的问题。另外,通过挂载的方式压缩镜像体积,传统的方法多是采用网络文件系统设备挂载镜像文件,而本发明实施例采用块设备存储系统作为挂载方案,解决了挂载网络文件系统的网络延迟,块存储设备可以看作是本地磁盘,访问其上内容无需经过网络,所以能有效的解决镜像内部调用功能速度慢的问题。
综上所述,本发明实施例的容器镜像处理方法,可获取用于生成容器镜像的所需文件信息,并根据所需文件信息构建完整镜像,然后确定完整镜像中的待删除的指定目录,并基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像,获取待删除的指定目录的目录内容,基于待删除的目录内容生成待挂载内容,之后将待挂载内容存储至块设备文件系统,并将压缩后的镜像挂载至块设备文件系统,该方法通过将构建的完整镜像中的指定目录进行删除以达到压缩镜像,并将删除的指定目录的目录内容作为待挂载内容存储到块设备文件系统中,进而将压缩后的镜像挂载至块设备文件系统,减小了待分发的镜像文件大小,可以加快容器镜像的分发速度,并且通过访问块设备文件系统上的镜像中指定目录内容无需经过网络,提高了容器镜像内部调用功能速度。
图2是根据本发明一个具体实施例的容器镜像处理方法的流程图。
为了解决镜像进行小批量功能更新,需要频繁重复构建镜像的问题,在本发明的实施例中,通过采用混合挂载的方式,在将镜像指定目录挂载至块存储设备的情况下,增加一个挂载点,将其挂载至网络文件系统上,以此为入口,可以通过对网络文件系统的更新,实现对镜像部分功能的更新,具体地,如图2和图3所示,该容器镜像处理方法可以包括:
S210,获取用于生成容器镜像的所需文件信息,并根据所需文件信息构建完整镜像。
S220,确定完整镜像中的待删除的指定目录,并基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像。
S230,获取待删除的指定目录的目录内容,基于待删除的目录内容生成待挂载内容。
S240,将待挂载内容存储至块设备文件系统,并将压缩后的镜像挂载至块设备文件系统。
需要说明的是,在本发明的实施例中,上述步骤S210-步骤S240的具体实现过程可参见上述步骤S110-S140的实现过程的描述,在此不再赘述。
S250,在所述压缩后的镜像中增加挂载点,基于所述挂载点,将所述压缩后的镜像挂载至网络文件系统上。
其中,在本发明的实施例中,所述网络文件系统中部署有针对所述容器镜像的更新文件。
也就是说,在将所述压缩后的镜像挂载至所述块设备文件系统的情况下,可以在压缩后的镜像中增加一个挂载点,通过该挂载点将该压缩后的镜像挂载到网络文件系统,该网络文件系统中可部署有针对所述容器镜像的更新文件,这样,可将此作为入口,可以通过对网络文件系统的更新,实现对镜像部分功能的更新,在小批量功能更新的场景下,只需要将更新文件部署至对应的网络文件系统上,即可在镜像中同步最新的文件,从而降低了镜像更新带来的运维构建成本。
根据本发明实施例的容器镜像处理方法,可基于混合挂载的方式,结合块存储设备以及网络文件系统的挂载方式,将镜像中的大体积目录挂载至块存储设备,利用docker的squash机制压缩镜像体积,加速镜像分发的速度;通过挂载网络文件系统为镜像提供更新入口,降低镜像更新重复构建的运维成本,实现了镜像的快速分发。
与上述几种实施例提供的容器镜像处理方法相对应,本发明的一种实施例还提供一种容器镜像处理装置,由于本发明实施例提供的容器镜像处理装置与上述几种实施例提供的容器镜像处理方法相对应,因此在容器镜像处理方法的实施方式也适用于本实施例提供的容器镜像处理装置,在本实施例中不再详细描述。图4是根据本发明一个实施例的容器镜像处理装置的结构示意图。
如图4所示,该容器镜像分发装置400包括:完整镜像构成模块410、镜像压缩模块420、待挂载内容获取模块430和镜像挂载模块440,其中:
完整镜像构成模块410用于获取用于生成容器镜像的所需文件信息,并根据所述所需文件信息构建完整镜像,作为一种示例,所述完整镜像构成模块410还用于在构建所述完整镜像时,分析所述所需文件信息,确定出占用空间大于预设阈值的文件信息,并将所述占用空间大于预设阈值的文件信息安装在所述完整镜像内指定的父级目录下。
镜像压缩模块420用于确定所述完整镜像中的待删除的指定目录,并基于所述待删除的指定目录对所述完整镜像进行压缩,得到压缩后的镜像,作为一种示例,镜像压缩模块具体用于420将所述指定的父级目录确定为所述完整镜像中的待删除的指定目录。
在本发明的实施例中,所述镜像压缩模块420具体用于:基于所述完整镜像,新增一层镜像层,并通过所述新增的镜像层将所述完整镜像中的待删除的指定目录删除清空,得到新的镜像;采用应用容器引擎的压缩机制,将所述得到的新镜像进行压缩合并,以使所述新镜像中的镜像层合并至一层,得到压缩后的镜像。
待挂载内容获取模块430用于获取所述待删除的指定目录的目录内容,基于所述待删除的目录内容生成待挂载内容。
镜像挂载模块440用于将所述待挂载内容存储至块设备文件系统,并将所述压缩后的镜像挂载至所述块设备文件系统。作为一种示例,所述镜像挂载模块440还用于在将所述压缩后的镜像挂载至所述块设备文件系统的情况下,在所述压缩后的镜像中增加挂载点,并基于所述挂载点,将所述压缩后的镜像挂载至网络文件系统上;其中,所述网络文件系统中部署有针对所述容器镜像的更新文件。
根据本发明实施例的容器镜像处理装置,可获取用于生成容器镜像的所需文件信息,并根据所需文件信息构建完整镜像,然后确定完整镜像中的待删除的指定目录,并基于待删除的指定目录对完整镜像进行压缩,得到压缩后的镜像,获取待删除的指定目录的目录内容,基于待删除的目录内容生成待挂载内容,之后将待挂载内容存储至块设备文件系统,并将压缩后的镜像挂载至块设备文件系统,由此,通过将构建的完整镜像中的指定目录进行删除以达到压缩镜像,并将删除的指定目录的目录内容作为待挂载内容存储到块设备文件系统中,进而将压缩后的镜像挂载至块设备文件系统,减小了待分发的镜像文件大小,可以加快容器镜像的分发速度,并且通过访问块设备文件系统上的镜像中指定目录内容无需经过网络,提高了容器镜像内部调用功能速度。
为了实现上述实施例,本发明还提出了一种计算机设备。
图5是根据本发明一个实施例的计算机设备的结构示意图。如图5所示,该计算机设备500可以包括:存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,处理器520执行程序时,实现本发明上述任一项所述的容器镜像处理方法。
为了实现上述实施例,本发明还提出了一种计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的容器镜像处理方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种容器镜像处理方法,其特征在于,包括以下步骤:
获取用于生成容器镜像的所需文件信息,并根据所述所需文件信息构建完整镜像;
确定所述完整镜像中的待删除的指定目录,并基于所述待删除的指定目录对所述完整镜像进行压缩,得到压缩后的镜像;
获取所述待删除的指定目录的目录内容,基于所述待删除的目录内容生成待挂载内容;
将所述待挂载内容存储至块设备文件系统,并将所述压缩后的镜像挂载至所述块设备文件系统。
2.根据权利要求1所述的方法,其特征在于,在构建所述完整镜像时,所述方法还包括:
分析所述所需文件信息,确定出占用空间大于预设阈值的文件信息;
将所述占用空间大于预设阈值的文件信息安装在所述完整镜像内指定的父级目录下。
3.根据权利要求2所述的方法,其特征在于,所述确定所述完整镜像中的待删除的指定目录,包括:
将所述指定的父级目录确定为所述完整镜像中的待删除的指定目录。
4.根据权利要求1所述的方法,其特征在于,所述基于所述待删除的指定目录对所述完整镜像进行压缩,得到压缩后的镜像,包括:
基于所述完整镜像,新增一层镜像层,并通过所述新增的镜像层将所述完整镜像中的待删除的指定目录删除清空,得到新的镜像;
采用应用容器引擎的压缩机制,将所述得到的新镜像进行压缩合并,以使所述新镜像中的镜像层合并至一层,得到压缩后的镜像。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在将所述压缩后的镜像挂载至所述块设备文件系统的情况下,所述方法还包括:
在所述压缩后的镜像中增加挂载点;
基于所述挂载点,将所述压缩后的镜像挂载至网络文件系统上;其中,所述网络文件系统中部署有针对所述容器镜像的更新文件。
6.一种容器镜像分发装置,其特征在于,包括:
完整镜像构成模块,用于获取用于生成容器镜像的所需文件信息,并根据所述所需文件信息构建完整镜像;
镜像压缩模块,用于确定所述完整镜像中的待删除的指定目录,并基于所述待删除的指定目录对所述完整镜像进行压缩,得到压缩后的镜像;
待挂载内容获取模块,用于获取所述待删除的指定目录的目录内容,基于所述待删除的目录内容生成待挂载内容;
镜像挂载模块,用于将所述待挂载内容存储至块设备文件系统,并将所述压缩后的镜像挂载至所述块设备文件系统。
7.根据权利要求6所述的装置,其特征在于,所述完整镜像构成模块,还用于在构建所述完整镜像时,分析所述所需文件信息,确定出占用空间大于预设阈值的文件信息,并将所述占用空间大于预设阈值的文件信息安装在所述完整镜像内指定的父级目录下。
8.根据权利要求7所述的装置,其特征在于,所述镜像压缩模块具体用于:
将所述指定的父级目录确定为所述完整镜像中的待删除的指定目录。
9.根据权利要求6所述的装置,其特征在于,所述镜像压缩模块具体用于:
基于所述完整镜像,新增一层镜像层,并通过所述新增的镜像层将所述完整镜像中的待删除的指定目录删除清空,得到新的镜像;
采用应用容器引擎的压缩机制,将所述得到的新镜像进行压缩合并,以使所述新镜像中的镜像层合并至一层,得到压缩后的镜像。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述镜像挂载模块,还用于在将所述压缩后的镜像挂载至所述块设备文件系统的情况下,在所述压缩后的镜像中增加挂载点,并基于所述挂载点,将所述压缩后的镜像挂载至网络文件系统上;其中,所述网络文件系统中部署有针对所述容器镜像的更新文件。
11.一种计算机设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1至5中任一项所述的容器镜像处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5中任一项所述的容器镜像处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910626226.5A CN110413455B (zh) | 2019-07-11 | 2019-07-11 | 容器镜像处理方法、装置、计算机设备和存储介质 |
US16/924,624 US11880341B2 (en) | 2019-07-11 | 2020-07-09 | Container image processing method and apparatus, and non-transitory computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910626226.5A CN110413455B (zh) | 2019-07-11 | 2019-07-11 | 容器镜像处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413455A true CN110413455A (zh) | 2019-11-05 |
CN110413455B CN110413455B (zh) | 2023-12-12 |
Family
ID=68361143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910626226.5A Active CN110413455B (zh) | 2019-07-11 | 2019-07-11 | 容器镜像处理方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11880341B2 (zh) |
CN (1) | CN110413455B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199581A (zh) * | 2020-09-11 | 2021-01-08 | 卞美玲 | 面向云计算和信息安全的云服务管理方法及人工智能平台 |
CN112433810A (zh) * | 2020-11-05 | 2021-03-02 | 北京浪潮数据技术有限公司 | docker容器镜像存储、拉取方法、装置及计算机可读存储介质 |
CN112597115A (zh) * | 2020-12-18 | 2021-04-02 | 国网浙江省电力有限公司电力科学研究院 | 容器镜像的压缩方法、装置、终端设备及介质 |
CN113176886A (zh) * | 2021-04-29 | 2021-07-27 | 中国工商银行股份有限公司 | 一种镜像文件压缩运行方法及装置 |
CN114281480A (zh) * | 2021-12-27 | 2022-04-05 | 长春吉大正元信息技术股份有限公司 | 一种容器镜像文件的处理方法、装置、设备及存储介质 |
WO2022256980A1 (en) * | 2021-06-07 | 2022-12-15 | Nvidia Corporation | Source archive optimizations for reducing container image sizes |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096333B (zh) * | 2019-04-18 | 2021-06-29 | 华中科技大学 | 一种基于非易失内存的容器性能加速方法 |
KR20230041361A (ko) * | 2021-09-17 | 2023-03-24 | 한국전자통신연구원 | 도커 이미지 생성 장치 및 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181027A1 (en) * | 2012-12-21 | 2014-06-26 | Zetta, Inc. | Systems and methods for state consistent replication |
US20170264684A1 (en) * | 2016-03-10 | 2017-09-14 | Vmware, Inc. | Container runtime image management across the cloud |
US20180129491A1 (en) * | 2016-11-10 | 2018-05-10 | Cisco Technology, Inc. | Space-optimized software installation using in-place extractable archive image |
US20180150487A1 (en) * | 2016-11-28 | 2018-05-31 | Atlassian Pty Ltd | Systems and methods for indexing source code in a search engine |
CN108256059A (zh) * | 2018-01-16 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种文件夹挂载方法及装置 |
US10140304B1 (en) * | 2015-12-10 | 2018-11-27 | EMC IP Holding Company LLC | Distributed metadata servers in a file system with separate metadata servers for file metadata and directory metadata |
CN109656686A (zh) * | 2018-12-17 | 2019-04-19 | 武汉烽火信息集成技术有限公司 | OpenStack上部署容器云方法、存储介质、电子设备及系统 |
US20190171431A1 (en) * | 2017-12-06 | 2019-06-06 | Acer Incorporated | Method and device for creating image |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10489354B2 (en) * | 2016-07-29 | 2019-11-26 | Hewlett Packard Enterprise Development Lp | Storage systems for containers |
US11171824B2 (en) * | 2018-03-01 | 2021-11-09 | Red Hat, Inc. | Configuration of computing devices via containers |
-
2019
- 2019-07-11 CN CN201910626226.5A patent/CN110413455B/zh active Active
-
2020
- 2020-07-09 US US16/924,624 patent/US11880341B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140181027A1 (en) * | 2012-12-21 | 2014-06-26 | Zetta, Inc. | Systems and methods for state consistent replication |
US10140304B1 (en) * | 2015-12-10 | 2018-11-27 | EMC IP Holding Company LLC | Distributed metadata servers in a file system with separate metadata servers for file metadata and directory metadata |
US20170264684A1 (en) * | 2016-03-10 | 2017-09-14 | Vmware, Inc. | Container runtime image management across the cloud |
US20180129491A1 (en) * | 2016-11-10 | 2018-05-10 | Cisco Technology, Inc. | Space-optimized software installation using in-place extractable archive image |
US20180150487A1 (en) * | 2016-11-28 | 2018-05-31 | Atlassian Pty Ltd | Systems and methods for indexing source code in a search engine |
US20190171431A1 (en) * | 2017-12-06 | 2019-06-06 | Acer Incorporated | Method and device for creating image |
CN108256059A (zh) * | 2018-01-16 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种文件夹挂载方法及装置 |
CN109656686A (zh) * | 2018-12-17 | 2019-04-19 | 武汉烽火信息集成技术有限公司 | OpenStack上部署容器云方法、存储介质、电子设备及系统 |
Non-Patent Citations (1)
Title |
---|
JASON WILDER: "Squashing Docker Images", 《HTTP://JASONWILDER.COM/BLOG/2014/08/19/SQUASHING-DOCKERIMAGES/》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199581A (zh) * | 2020-09-11 | 2021-01-08 | 卞美玲 | 面向云计算和信息安全的云服务管理方法及人工智能平台 |
CN112433810A (zh) * | 2020-11-05 | 2021-03-02 | 北京浪潮数据技术有限公司 | docker容器镜像存储、拉取方法、装置及计算机可读存储介质 |
CN112433810B (zh) * | 2020-11-05 | 2023-12-26 | 北京浪潮数据技术有限公司 | docker容器镜像存储、拉取方法、装置及计算机可读存储介质 |
CN112597115A (zh) * | 2020-12-18 | 2021-04-02 | 国网浙江省电力有限公司电力科学研究院 | 容器镜像的压缩方法、装置、终端设备及介质 |
CN113176886A (zh) * | 2021-04-29 | 2021-07-27 | 中国工商银行股份有限公司 | 一种镜像文件压缩运行方法及装置 |
WO2022256980A1 (en) * | 2021-06-07 | 2022-12-15 | Nvidia Corporation | Source archive optimizations for reducing container image sizes |
CN114281480A (zh) * | 2021-12-27 | 2022-04-05 | 长春吉大正元信息技术股份有限公司 | 一种容器镜像文件的处理方法、装置、设备及存储介质 |
CN114281480B (zh) * | 2021-12-27 | 2022-12-13 | 长春吉大正元信息技术股份有限公司 | 一种容器镜像文件的处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110413455B (zh) | 2023-12-12 |
US20210011885A1 (en) | 2021-01-14 |
US11880341B2 (en) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413455A (zh) | 容器镜像处理方法、装置、计算机设备和存储介质 | |
CN105808633B (zh) | 数据归档方法和系统 | |
CN109032521B (zh) | 存储卷创建方法、装置、服务器及存储介质 | |
CA2790734C (en) | Data synchronization between a data center environment and a cloud computing environment | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
JP6011421B2 (ja) | ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法 | |
AU2014287633B2 (en) | Virtual database rewind | |
CN110334102A (zh) | 在存储器中镜像盘中的数据以提高查询性能 | |
US9122614B1 (en) | Modular block-allocator for data storage systems | |
CN101443761A (zh) | 对文件系统的支持qos的生命周期管理 | |
US11397749B2 (en) | Asynchronous replication of in-scope table data | |
CN109478183A (zh) | 数据库中的存储器中单元的版本化和非破坏性服务 | |
CN104021009A (zh) | 用于存储控制器的高效生命周期管理的方法和系统 | |
CN103973725A (zh) | 一种分布式协同方法和协同器 | |
CN104079600B (zh) | 文件存储方法、装置、访问客户端及元数据服务器系统 | |
CN108073723A (zh) | 一种用于分布式集群存储上的文件自精简方法及设备 | |
CN104662522B (zh) | 使用存储系统功能性的全虚拟机备份的系统和方法 | |
US11150981B2 (en) | Fast recovery from failures in a chronologically ordered log-structured key-value storage system | |
CN104182532B (zh) | 终端文件的清理方法、装置及终端 | |
CN109471989A (zh) | 一种页面请求处理方法及相关装置 | |
DE112021000408T5 (de) | Prädiktives bereitstellen von fern gespeicherten dateien | |
CN101212342A (zh) | 多版本网元的网络管理方法 | |
Cavalli et al. | StoRM-GPFS-TSM: A new approach to hierarchical storage management for the LHC experiments | |
KR100951099B1 (ko) | 데이터 저장 관리 방법 및 그 방법을 수행하기 위한프로그램이 기록된 기록매체 | |
CN108008984A (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 |