CN112306621A - 容器分层部署方法及系统 - Google Patents

容器分层部署方法及系统 Download PDF

Info

Publication number
CN112306621A
CN112306621A CN201910670480.5A CN201910670480A CN112306621A CN 112306621 A CN112306621 A CN 112306621A CN 201910670480 A CN201910670480 A CN 201910670480A CN 112306621 A CN112306621 A CN 112306621A
Authority
CN
China
Prior art keywords
software package
docker
public
characteristic
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
Application number
CN201910670480.5A
Other languages
English (en)
Inventor
王建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201910670480.5A priority Critical patent/CN112306621A/zh
Priority to PCT/CN2020/104491 priority patent/WO2021013248A1/zh
Publication of CN112306621A publication Critical patent/CN112306621A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种容器分层部署方法及系统,所述方法包括:各功能单板从主控单板的磁盘中下载版本文件,其中,所述版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;各功能单板基于所述基础镜像文件、所述公共软件包以及所述特性软件包进行容器的分层创建。

Description

容器分层部署方法及系统
技术领域
本发明涉及计算机领域,尤其涉及一种容器分层部署方法及系统。
背景技术
计算机系统虚拟化有诸多优势,一个重要的好处就是提高硬件资源的利用效率,嵌入式设备也面临虚拟化的选择。相较于传统的虚拟机,Docker开销更小,启动更快,性能更优,是目前应用最广泛的虚拟化技术。
Docker是一个开源的应用容器平台,基于该平台,可以开发-部署-运行(developing,shipping,and running)应用程序。利用linux的命名空间(namespace)技术和联合文件系统(UnionFs),容器可以在用户态建立一个隔离的程序运行空间,里面运行指定的用户态程序和依赖,从而做到隔离不同的应用程序,隔离异常的影响。
如图1所示,Docker采用了C/S架构,客户端和服务端可以运行在一个机器上,也可以运行在不同的主机上,他们之间用RESTful API来进行交互。Docker客户端提供管理工具,管理镜像、容器、网络、数据卷等,用户通过这些工具和Docker服务端(即dockerdaemon)交互。Docker daemon一般在宿主机后台运行,等待接收客户端的消息。
Docker容器是基于Docker镜像而创建并运行的,Docker镜像是一个可独立运行的软件包,其中包含了运行对应应用程序所需的所有东西:代码、系统工具、所依赖的库、配置文件等。如图2所示,Docker镜像由一系列的层(layer)组成,这些层是只读的,每个层都有ID和元数据,除了基础镜像层,每一层有一个指针指向下一层。基于基础镜像,可以制作各种具有不同功能的应用镜像。利用UnionFs可以把各个层整合到统一的文件系统下,提供统一的视角。Docker镜像可以推送(push)到镜像仓库(registry)中进行保存,也可以从镜像仓库拉取(pull)到本地使用。
电信设备一般是多单板的嵌入式计算机分布式系统,在电信设备上应用虚拟化技术有自其身的特点。如图3所示,电信设备一般有控制板和多个功能板组成,每个单板都是一个独立的嵌入式计算机系统,彼此之间相互交互信息,有密切的联系。主控板管理各单板的软件版本,各功能单板启动时从主控板获取本单板的版本文件。各功能板运行的业务不同,所运行的软件基础组件是相同的,应用软件包又有较大的不同,因此需要部署在容器里的软件包即有很大的相似性,也有所不同。
传统部署容器方式如图4所示,在后台为每个单板制作一个独立的Docker镜像并通过网络加载到主控的磁盘里。
service_mu.tar运行在主控板,包含主控板上的功能软件;service_fu1.tar,service_fu2.tar,...,service_fuN.tar,分别包含对应功能单板的软件包。其中每一个镜像都包含基础镜像,各自启动需要的进程和进程依赖的库及配置文件,具体为:
service_mu.tar包含:baseimage,主控上启动的进程,进程依赖的库文件,相关的配置文件。
service_fu1.tar包含:baseimage,单板无关进程和库文件,功能板1相关进程和库文件,配置文件;
service_fu2tar包含:baseimage,单板无关进程和库文件,功能板2相关进程和库文件,配置文件;
...
service_fuN.tar包含:baseimage,单板无关进程和库文件,功能板3相关进程和库文件,配置文件。
在主控板上部署本地registry仓库,registry管理系统中所有的镜像。为了部署registry仓库,主控上还需要一个registry镜像文件。系统起来后,把所有镜像先load到本地仓库里,然后用docker push命令再把镜像放进registry仓库中,其它外围单板通过docker pull来获取镜像。
上述部署Docker的方式存在如下问题:
1、同一系统中的多个镜像文件之间存在大量冗余内容,导致整个版本文件特别大,版本构建时间长,版本文件加载到设备后大量占用主控板的磁盘空间。
2、用registry管理镜像会大量消耗内存资源。每一个镜像需要先在主控上加载到内存中,然后push到registry,多消耗两份内存。当镜像比较多的情况下,主控板的内存会不堪重负。而且从本地push镜像到registry时还需要进行镜像各层的冲突检测,耗费CPU资源。
发明内容
本发明实施例提供一种容器分层部署方法及系统,用以解决现有技术中同一系统中的多个镜像文件之间存在大量冗余内容,导致整个版本文件庞大,版本构建时间长,版本文件加载到设备后大量占用主控板的磁盘空间的问题。
本发明实施例提供一种容器分层部署方法,包括:
各功能单板从主控单板的磁盘中下载版本文件,其中,版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
各功能单板基于基础镜像文件、公共软件包以及特性软件包进行容器的分层创建。
本发明实施例还提供一种容器分层部署系统,设置于各功能单板,包括:
下载模块,用于从主控单板的磁盘中下载版本文件,其中,版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
容器创建模块,用于基于基础镜像文件、公共软件包以及特性软件包进行容器的分层创建。
采用本发明实施例,通过将各镜像间重复的内容抽取为公共部分,解决了解决现有技术中同一系统中的多个镜像文件之间存在大量冗余内容,导致整个版本文件庞大,版本构建时间长,版本文件加载到设备后大量占用主控板的磁盘空间的问题,降低了版本文件的大小,在系统运行时降低了内存和磁盘的消耗。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是现有技术中docker组件示意图;
图2是现有技术中镜像组成示意图;
图3是现有技术中电信设备组成图;
图4是现有技术中传统的docker部署方式示意图;
图5是本发明实施例的容器分层部署方法的流程图;
图6是本发明实施例的改进后的docker容器部署的示意图;
图7是本发明实施例中容器分层部署系统的示意图。
具体实施方式
为了解决现有技术中由于镜像文件过于庞大而产生的问题,本发明实施例提出了一种容器分层部署方法。Docker客户端接收基础镜像和公共软件包、特性软件包,在Docker服务端处理公共软件包和特性软件包,把他们融合在基础镜像里,动态生成容器实例。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
方法实施例
根据本发明的实施例,提供了一种容器分层部署方法,图5是本发明实施例的容器分层部署方法的流程图,如图5所示,根据本发明实施例的容器分层部署方法具体包括:
步骤501,各功能单板从主控单板的磁盘中下载版本文件,其中,所述版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
需要说明的是,在执行步骤501之前,需要执行以下的准备工作:
首先需要在后台制作基础镜像baseimage.tar(即上述基础镜像文件),基础镜像里只有根文件系统;把各单板公共的软件制作成普通tar包或者docker镜像包common.tar(即上述公共软件包),把各单板特有的软件制作成普通tar包或者docker镜像包boardx.tar(即上述特性软件包);
其次,还需要对docker客户端和docker服务端代码进行修改,使支持新增命令选项-commontar和-individualtar,和/或,-commonimg和-individualimg;Docker客户端把选项参数传递到Docker服务端,在Docker服务端在代码修改后,就可以解析新增选项,解压公共软件包和特性软件包,并选择性复制公共软件和特性软件内容到容器读写层。
最后,将docker客户端和docker服务端(也可以称为dockerd)部署到目标系统上;并在主控板上部署FTP服务器;
通过版本管理服务将版本文件加载到主控单板的磁盘中,其中,版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
步骤502,各功能单板基于所述基础镜像文件、所述公共软件包以及所述特性软件包进行容器的分层创建。
具体包括如下处理:
1、各功能单板从主控单板的磁盘中下载基础镜像文件、公共软件包、以及特性软件包;
优选地,在本发明实施例中,针对registry管理镜像消耗内存的问题,registry,部署FTP server管理镜像,各功能单板通过FTP服务从主控单板的磁盘中下载基础镜像文件、公共软件包、以及特性软件包,即baseimage.tar,common.tar和boardx.tar,然后通过docker API运行镜像。
2、各功能单板上的docker客户端将基础镜像文件加载到本地镜像仓库中,获取镜像ID,并通过预先在docker客户端新增的两个选项,将公共软件包和特性软件包发送到docker服务端,并将镜像ID也发送到docker服务端;
3、各功能单板上的docker服务端解析公共软件包和特性软件包并将其全部或者部分解压缩到容器的读写层中,并根据镜像ID和读写层中的公共软件包和特性软件包创建容器。
在本发明实施例中,如果公共软件包和特性软件包为普通tar包;在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commontar和-individualtar,则步骤504具体包括如下处理:各功能单板上的docker服务端通过postContainersCreate函数解析-commontar和-individualtar参数,通过daemon.create函数把公共软件包和特性软件包解压到容器的读写层中。
在本发明实施例中,如果公共软件包和特性软件包为docker镜像包;在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commonimg和-individualimg,则步骤504具体包括如下处理:各功能单板上的docker服务端通过postContainersCreate函数解析-commonimg和-individualimg参数,通过daemon.create函数把公共软件包和特性软件包解压到临时目录,剔除基础镜像相关内容,剔除元数据文件,把应用文件复制到容器的读写层中。
综上,改进后的Docker容器部署如图6所示,可以看到把各镜像间重复的内容抽取为公共部分,降低了版本大小,在系统运行时降低了内存和磁盘的消耗。
以下对本发明实施例的上述技术方案进行详细说明。
实例1,公共软件包和特性软件包为普通tar包。
一、后台制作版本
Step1、制作基础镜像文件baseimage.tar,把公共软件包制作成普通TAR包common.tar,把特性软件包制作成普通TAR包boardx.tar;
Step2、把baseimage.tar、common.tar、boardx.tar和版本中其它文件一起做到版本文件version.set里。
二、修改docker源码
Step1、从docker官网获取docker源码,包括docker-engine、containerd和runc三个组件;
Step2、修改docker客户端代码NewCreateCommand函数,该函数定义了dockercreate命令,添加两个选项-commontar和-individualtar;
Step3、修改docker daemon端代码,在postContainersCreate函数解析-commontar和-individualtar参数,在daemon.create函数把common.tar和individual.tar解压到容器的读写层里;
Step4、在后台用目标环境的交叉工具链编译docker源码,获得docker和dockerd。
三、目标系统的部署流程
Step1、把docker和dockerd部署到目标系统上;
Step2、主控板上部署ftp服务器;
Step3、把version.set加载到主控单板的磁盘里,通过版本管理服务解析出baseimage.tar、common.tar、boardx.tar;
Step4、各功能板通过ftp从主控板上下载baseimage.tar、common.tar、boardx.tar;
Step5、在各功能板上docker load命令把或者REST API把baseimage.tar加载到本地镜像仓库中,如下:
Docker load-i baseimage.tar
Step6、根据step5得到的镜像的id创建容器。
Docker run-it baseimageID-commontar common.tar-individualtarboardx.tar
实例2,公共软件包和特性软件包为docker镜像包
一、后台制作版本
Step1、制作基础镜像文件baseimage.tar,用公共软件包制作公共镜像文件common.tar,用特性软件包制作各个特性镜像文件boardx.tar;
Step2、把baseimage.tar、common.tar、boardx.tar和版本中其它文件一起做到版本文件version.set里。
二、修改docker源码
Step1、从docker官网获取docker源码,包括docker-engine、containerd和runc三个组件;
Step2、修改docker客户端代码NewCreateCommand函数,该函数定义了dockercreate命令,添加两个选项-commonimg和-individualimg;
Step3、修改docker daemon端代码,在postContainersCreate函数解析-commonimg和-individualimg参数,在daemon.create函数把common.tar和individual.tar解压到临时目录,剔除基础镜像相关内容,剔除元数据文件,把应用文件复制到容器的读写层里;
Step4、在后台用目标环境的交叉工具链编译docker源码,获得docker和dockerd。
三、目标系统的部署流程
Step1、把docker和dockerd部署到目标系统上;
Step2、主控板上部署ftp服务器;
Step3、把version.set加载到主控单板的磁盘里,通过版本管理进程解析出baseimage.tar、common.tar、boardx.tar;
Step4、各功能板通过ftp从主控板上下载baseimage.tar、common.tar、boardx.tar;
Step5、在各功能板上docker load命令把或者REST API把baseimage.tar加载到本地镜像仓库中,如下:
Docker load-i baseimage.tar
Step6、根据step5得到的镜像的id创建容器。
Docker run-it baseimageID-commonimg common.tar-individualimgboardx.tar
综上所述,借助于本发明实施例的技术方案,通过将单板共用一份相同的基础镜像文件和公共软件包,大大降低冗余,减小版本大小和磁盘的消耗。通过采用FTP服务,解决了registry管理镜像消耗内存的问题。
本发明实施的技术方案可以用于数据产品,例如,高端路由器和交换机上可以应用本发明实施例的技术方案。在计算机虚拟化技术、互联网技术领域,也可以应用本发明实施例的技术方案。
装置实施例
根据本发明实施例,提供给了一种容器分层部署系统,设置于各功能单板,图7是本发明实施例的容器分层部署系统的示意图,具体包括:
下载模块70,用于从主控单板的磁盘中下载版本文件,其中,版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
需要说明的是,在进行容器分层部署之前,还需要进行如下的准备工作:
首先,需要通过后台制作基础镜像baseimage.tar(即上述基础镜像文件),基础镜像里只有根文件系统;把各单板公共的软件制作成普通tar包或者docker镜像包common.tar(即上述公共软件包),把各单板特有的软件制作成普通tar包或者docker镜像包boardx.tar(即上述特性软件包);
其次,还需要对docker客户端和docker服务端代码进行修改,使支持新增命令选项-commontar和-individualtar,和/或,-commonimg和-individualimg;Docker客户端把选项参数传递到Docker服务端,在Docker服务端在代码修改后,就可以解析新增选项,解压公共软件包和特性软件包,并选择性复制公共软件和特性软件内容到容器读写层。
最后,将docker客户端和docker服务端(也可以称为dockerd)部署到目标系统上;并在主控板上部署FTP服务器;
版本管理服务模块将版本文件加载到主控单板的磁盘中,其中,版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
下载模块70具体用于:从主控单板的磁盘中下载基础镜像文件、公共软件包、以及特性软件包;具体地,可以通过FTP服务从主控单板的磁盘中下载基础镜像文件、公共软件包、以及特性软件包,并发送给相应的功能单板。
容器创建模块72,用于基于基础镜像文件、公共软件包以及特性软件包进行容器的分层创建。
容器创建模块72具体包括:
docker客户端,用于将基础镜像文件加载到本地镜像仓库中,获取镜像ID,并通过预先在docker客户端新增的两个选项,将公共软件包和特性软件包发送到docker服务端,并将镜像ID也发送到docker服务端;
docker服务端,用于解析公共软件包和特性软件包并将其全部或者部分解压缩到容器的读写层中,并根据镜像ID和读写层中的公共软件包和特性软件包创建容器。docker服务端具体用于:通过postContainersCreate函数解析-commontar和-individualtar参数,通过daemon.create函数把公共软件包和特性软件包解压到容器的读写层中。
也就是说,docker客户端将基础镜像文件加载到本地镜像仓库中,获取镜像ID,并通过预先在docker客户端新增的两个选项,将公共软件包和特性软件包发送到docker服务端,并将镜像ID也发送到docker服务端;其中的docker服务端解析公共软件包和特性软件包并将其全部或者部分解压缩到容器的读写层中,并根据镜像ID和读写层中的公共软件包和特性软件包创建容器。
优选地,在本发明实施例中,还包括:
在本发明实施例中,公共软件包和特性软件包可以为普通tar包;从而在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commontar和-individualtar。在上述情况下,各功能单板74具体用于:其上的docker服务端通过postContainersCreate函数解析-commontar和-individualtar参数,通过daemon.create函数把公共软件包和特性软件包解压到容器的读写层中。
在另一个实施例中,公共软件包和特性软件包可以为docker镜像包;从而在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commonimg和-individualimg。在上述情况下,各功能单板74具体用于:其上的docker服务端通过postContainersCreate函数解析-commonimg和-individualimg参数,通过daemon.create函数把公共软件包和特性软件包解压到临时目录,剔除基础镜像相关内容,剔除元数据文件,把应用文件复制到容器的读写层中。
综上所述,借助于本发明实施例的技术方案,通过将单板共用一份相同的基础镜像文件和公共软件包,大大降低冗余,减小版本大小和磁盘的消耗。通过采用FTP服务,解决了registry管理镜像消耗内存的问题。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种容器分层部署方法,其特征在于,包括:
各功能单板从主控单板的磁盘中下载版本文件,其中,所述版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
各功能单板基于所述基础镜像文件、所述公共软件包以及所述特性软件包进行容器的分层创建。
2.如权利要求1所述的方法,其特征在于,各功能单板基于所述基础镜像文件、所述公共软件包以及所述特性软件包进行容器的分层创建具体包括:
各功能单板上的docker客户端将基础镜像文件加载到本地镜像仓库中,获取镜像ID,并通过预先在docker客户端新增的两个选项,将所述公共软件包和所述特性软件包发送到docker服务端,并将镜像ID也发送到docker服务端;
各功能单板上的docker服务端解析所述公共软件包和所述特性软件包并将其全部或者部分解压缩到容器的读写层中,并根据所述镜像ID和所述读写层中的所述公共软件包和所述特性软件包创建容器。
3.如权利要求1所述的方法,其特征在于,各功能单板从所述主控单板的磁盘中下载所述基础镜像文件、所述公共软件包、以及所述特性软件包具体包括:
各功能单板通过FTP服务从所述主控单板的磁盘中下载所述基础镜像文件、所述公共软件包、以及所述特性软件包。
4.如权利要求2所述的方法,其特征在于,
所述公共软件包和所述特性软件包为普通tar包;
在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commontar和-individualtar。
5.如权利要求4所述的方法,其特征在于,各功能单板上的docker服务端解析所述公共软件包和所述特性软件包并将其全部或者部分解压缩到容器的读写层中具体包括:
各功能单板上的docker服务端通过postContainersCreate函数解析-commontar和-individualtar参数,通过daemon.create函数把所述公共软件包和所述特性软件包解压到容器的读写层中。
6.如权利要求2所述的方法,其特征在于,
所述公共软件包和所述特性软件包为docker镜像包;
在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commonimg和-individualimg。
7.如权利要求6所述的方法,其特征在于,各功能单板上的docker服务端解析所述公共软件包和所述特性软件包并将其全部或者部分解压缩到容器的读写层中具体包括:
各功能单板上的docker服务端通过postContainersCreate函数解析-commonimg和-individualimg参数,通过daemon.create函数把所述公共软件包和所述特性软件包解压到临时目录,剔除基础镜像相关内容,剔除元数据文件,把应用文件复制到容器的读写层中。
8.一种容器分层部署系统,其特征在于,设置于各功能单板,所述系统具体包括:
下载模块,用于从主控单板的磁盘中下载版本文件,其中,所述版本文件具体包括:基础镜像文件、公共软件包、以及特性软件包;
容器创建模块,用于基于所述基础镜像文件、所述公共软件包以及所述特性软件包进行容器的分层创建。
9.如权利要求8所述的系统,其特征在于,容器创建模块具体包括:
docker客户端,用于将基础镜像文件加载到本地镜像仓库中,获取镜像ID,并通过预先在docker客户端新增的两个选项,将所述公共软件包和所述特性软件包发送到docker服务端,并将镜像ID也发送到docker服务端;
docker服务端,用于解析所述公共软件包和所述特性软件包并将其全部或者部分解压缩到容器的读写层中,并根据所述镜像ID和所述读写层中的所述公共软件包和所述特性软件包创建容器。
10.如权利要求8所述的系统,其特征在于,所述下载模块具体用于:通过FTP服务从所述主控单板的磁盘中下载所述基础镜像文件、所述公共软件包、以及所述特性软件包,并发送给相应的功能单板。
11.如权利要求9所述的系统,其特征在于,
所述公共软件包和所述特性软件包为普通tar包;
在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commontar和-individualtar。
docker服务端具体用于:通过postContainersCreate函数解析-commontar和-individualtar参数,通过daemon.create函数把所述公共软件包和所述特性软件包解压到容器的读写层中。
12.如权利要求9所述的系统,其特征在于,
所述公共软件包和所述特性软件包为docker镜像包;
在docker客户端新增的两个选项具体包括:NewCreateCommand函数中的选项-commonimg和-individualimg。
所述docker服务端具体用于:通过postContainersCreate函数解析-commonimg和-individualimg参数,通过daemon.create函数把所述公共软件包和所述特性软件包解压到临时目录,剔除基础镜像相关内容,剔除元数据文件,把应用文件复制到容器的读写层中。
CN201910670480.5A 2019-07-24 2019-07-24 容器分层部署方法及系统 Pending CN112306621A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910670480.5A CN112306621A (zh) 2019-07-24 2019-07-24 容器分层部署方法及系统
PCT/CN2020/104491 WO2021013248A1 (zh) 2019-07-24 2020-07-24 容器分层部署方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910670480.5A CN112306621A (zh) 2019-07-24 2019-07-24 容器分层部署方法及系统

Publications (1)

Publication Number Publication Date
CN112306621A true CN112306621A (zh) 2021-02-02

Family

ID=74193331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910670480.5A Pending CN112306621A (zh) 2019-07-24 2019-07-24 容器分层部署方法及系统

Country Status (2)

Country Link
CN (1) CN112306621A (zh)
WO (1) WO2021013248A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113296766A (zh) * 2021-05-31 2021-08-24 中电福富信息科技有限公司 基于Seldon的AI模型发布方法及系统
CN113342359A (zh) * 2021-05-13 2021-09-03 烽火通信科技股份有限公司 容器镜像文件智能生成方法、装置、设备及存储介质
CN114327754A (zh) * 2021-12-15 2022-04-12 中电信数智科技有限公司 一种基于容器分层技术的镜像导出与组装方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032736A (zh) * 2021-03-05 2021-06-25 海能达通信股份有限公司 Docker分层镜像的加解密方法及相关装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729020B (zh) * 2017-10-11 2020-08-28 北京航空航天大学 一种实现大规模容器快速部署的方法
CN107644374A (zh) * 2017-10-19 2018-01-30 方欣科技有限公司 一种基于Docker云计算技术涉税文书系统构建平台
CN109190386B (zh) * 2018-04-04 2021-11-12 中国电子科技网络信息安全有限公司 基于Device Mapper的容器镜像分层加密存储方法
CN109062655B (zh) * 2018-06-05 2021-05-14 腾讯科技(深圳)有限公司 一种容器化云平台及服务器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342359A (zh) * 2021-05-13 2021-09-03 烽火通信科技股份有限公司 容器镜像文件智能生成方法、装置、设备及存储介质
CN113296766A (zh) * 2021-05-31 2021-08-24 中电福富信息科技有限公司 基于Seldon的AI模型发布方法及系统
CN114327754A (zh) * 2021-12-15 2022-04-12 中电信数智科技有限公司 一种基于容器分层技术的镜像导出与组装方法
CN114327754B (zh) * 2021-12-15 2022-10-04 中电信数智科技有限公司 一种基于容器分层技术的镜像导出与组装方法

Also Published As

Publication number Publication date
WO2021013248A1 (zh) 2021-01-28

Similar Documents

Publication Publication Date Title
CN106227579B (zh) 一种Docker容器构建方法及Docker管理控制台
CN112306621A (zh) 容器分层部署方法及系统
RU2495481C2 (ru) Размещение программного обеспечения в больших сетевых системах
EP3488337B1 (en) Shared software libraries for computing devices
EP3155530B1 (en) Scheduling policy for queues in a non-volatile solid-state storage
US20190303120A1 (en) Dynamic container deployment with parallel conditional layers
CN114207586A (zh) 用于容器部署的动态映像合成
EP2633400B1 (en) Stateful applications operating in a stateless cloud computing environment
US11500814B1 (en) Chain file system
AU2008231291B2 (en) IT automation appliance imaging system and method
CN111492347A (zh) 用于更新容器的系统和方法
US10574524B2 (en) Increasing reusability of and reducing storage resources required for virtual machine images
CN111930473B (zh) 在容器云上部署图像识别服务的方法与设备
US20090100418A1 (en) Management of Software and Operating System Updates Required for the Process of Creating A Virtual Machine Facsimile Of An Existing Physical Or Virtual Machine
US11775475B2 (en) Deferred path resolution during container deployment
US8315996B2 (en) Efficient management of customized functionality within shared data objects
US11487727B2 (en) Resolving versions in an append-only large-scale data store in distributed data management systems
CN114489833B (zh) 一种在应用程序中提交flink作业到yarn集群的实现方法与装置
US9015180B1 (en) Repository including file identification
US20240004832A1 (en) System and method for providing a container environment in a single file
CN110955415A (zh) 一种投影多平台服务适配的方法
CN113741952A (zh) 一种软件包管理方法、装置、设备及介质
EP4036720B1 (en) Hash optimized composition cache for isolated execution environments
CN113076109B (zh) 一种跨平台的部署脚本语言的方法
CN114327667B (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