CN111552495B - 一种对Docker容器镜像实现离线增量更新的方法 - Google Patents

一种对Docker容器镜像实现离线增量更新的方法 Download PDF

Info

Publication number
CN111552495B
CN111552495B CN202010333272.9A CN202010333272A CN111552495B CN 111552495 B CN111552495 B CN 111552495B CN 202010333272 A CN202010333272 A CN 202010333272A CN 111552495 B CN111552495 B CN 111552495B
Authority
CN
China
Prior art keywords
upgrade package
incremental update
image
update
offline
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
Application number
CN202010333272.9A
Other languages
English (en)
Other versions
CN111552495A (zh
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.)
Koal Software Co ltd
Original Assignee
Koal Software Co ltd
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 Koal Software Co ltd filed Critical Koal Software Co ltd
Priority to CN202010333272.9A priority Critical patent/CN111552495B/zh
Publication of CN111552495A publication Critical patent/CN111552495A/zh
Application granted granted Critical
Publication of CN111552495B publication Critical patent/CN111552495B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开的一种对Docker容器镜像实现离线增量更新的方法包括实现离线增量更新的升级包制作步骤和实现离线增量更新的步骤。本发明的有益效果在于:本发明的方法使得可以实现离线对Docker容器镜像实现增量更新。

Description

一种对Docker容器镜像实现离线增量更新的方法
技术领域
本发明涉及使用Docker容器的技术领域,尤其涉及一种对Docker容器镜像实现离线增量更新的方法。
背景技术
Docker容器作为一种互联网行业流行的容器技术,更新容器镜像通常是通过在线从中心服务拉取的方式进行。其精巧设计的分层文件系统可以使得更新容器镜像仅拉取不同版本的差异部分即可,大大提升了更新速度。然而在离线环境下,通常没有办法使用这种需要中心部署的在线更新。Docker容器技术缺少对离线更新这种需求的良好支持,只提供了导出完整容器镜像的功能,导致升级包容量膨胀。
为此,本申请人进行了有益的探索和尝试,找到了一种针对Docker容器镜像实现制作增量更新的升级包和实施镜像更新的方法,将要介绍的技术方案便是在这种背景下产生的。
发明内容
本发明所要解决的技术问题在于针对现有技术所存在的不足而提供一种对Docker容器镜像实现离线增量更新的方法。
本发明所解决的技术问题可以采用以下技术方案来实现:
一种对Docker容器镜像实现离线增量更新的方法,包括实现离线增量更新的升级包制作步骤和实现离线增量更新的步骤,其中,
所述实现离线增量更新的升级包制作步骤包括如下步骤:
1.1)准备一个目录存放镜,以存放新镜像制作所需要的文件;
1.2)在Dockerfile中,使用FROM指令指定父镜像为需要更新目标镜像的名称和版本;
1.3)在Dockerfile中,使用COPY指令将所有差异文件拷贝到新镜像内,并创建一个新的镜像文件系统分层;
1.4)准备一个文件记录要更新后的目标镜像名称和版本;
1.5)准备一个目录存放更新前置脚本;
1.6)准备一个目录存放更新后置脚本;
1.7)使用压缩打包工具将整个目录结构压缩并打包,完成升级包制作;
所述实现离线增量更新的步骤包括如下步骤:
2.1)通过离线方式将所述实现离线增量更新的升级包制作步骤中制作的升级包上传到目标设备;
2.2)解压所述实现离线增量更新的升级包制作步骤中制作的升级包到临时目录;
2.3)依次执行更新前置脚本;
2.4)进入Dockerfile所在的目录,读取升级后的目标镜像名称和版本;
2.5)执行docker build-t<升级后目标镜像>进行增量更新;
2.6)重新启动目标镜像的容器;
2.7)依次执行更新后置脚本。
由于采用了如上的技术方案,本发明的有益效果在于:本发明的方法使得可以实现离线对Docker容器镜像实现增量更新。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体文件结构和命令,进一步阐述本发明。
本发明一种对Docker容器镜像实现离线增量更新的方法,包括实现离线增量更新的升级包制作步骤和实现离线增量更新的步骤,其中,所述实现离线增量更新的升级包制作步骤包括如下步骤:
1.1)准备一个目录存放镜(如image),以存放新镜像制作所需要的文件;
1.2)在Dockerfile中,使用FROM指令指定父镜像为需要更新目标镜像的名称和版本;
1.3)在Dockerfile中,使用COPY指令将所有差异文件拷贝到新镜像内,并创建一个新的镜像文件系统分层;
1.4)准备一个文件(如target_version)记录要更新后的目标镜像名称和版本;
1.5)准备一个目录存放更新前置脚本(如pre-upgrade);
1.6)准备一个目录存放更新后置脚本(如post-upgrade);
上述的示意目录结构如下:
Figure BDA0002465725600000031
1.7)使用zip压缩打包工具将整个目录结构压缩并生成upgrade.zip,完成升级包制作;
所述实现离线增量更新的步骤包括如下步骤:
2.1)通过串口/管理口离线方式将实现离线增量更新的升级包制作步骤中制作的升级包上传到目标设备;
2.2)解压所述实现离线增量更新的升级包制作步骤中制作的升级包到临时目录/tmp/upgrade;
2.3)依次执行更新前置脚本run-parts/tmp/upgrade/pre-upgrade;
2.4)进入Dockerfile所在的目录,从target_version读取升级后的目标镜像名称和版本;
2.5)执行docker build-t$target_version进行增量更新;
2.6)重新启动目标镜像的容器docker-compose up-d$target_version;轮询读取/var/run/docker.stat/$target_version状态,当内容为ready时表示服务已正常启动,如果在规定时间内,服务状态没有变为ready,则视为升级失败,回退所有升级
2.7)依次执行更新后置脚本run-parts/tmp/upgrade/post-upgrade,执行成功则进行表示该服务升级成功;执行失败回退所有升级。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (1)

1.一种对Docker容器镜像实现离线增量更新的方法,其特征在于,包括实现离线增量更新的升级包制作步骤和实现离线增量更新的步骤,其中,
所述实现离线增量更新的升级包制作步骤包括如下步骤:
1.1)准备一个目录存放镜,以存放新镜像制作所需要的文件;
1.2)在Dockerfile中,使用FROM指令指定父镜像为需要更新目标镜像的名称和版本;
1.3)在Dockerfile中,使用COPY指令将所有差异文件拷贝到新镜像内,并创建一个新的镜像文件系统分层;
1.4)准备一个文件记录要更新后的目标镜像名称和版本;
1.5)准备一个目录存放更新前置脚本;
1.6)准备一个目录存放更新后置脚本;
1.7)使用压缩打包工具将整个目录结构压缩并打包,完成升级包制作;
所述实现离线增量更新的步骤包括如下步骤:
2.1)通过离线方式将所述实现离线增量更新的升级包制作步骤中制作的升级包上传到目标设备;
2.2)解压所述实现离线增量更新的升级包制作步骤中制作的升级包到临时目录;
2.3)依次执行更新前置脚本;
2.4)进入Dockerfile所在的目录,读取升级后的目标镜像名称和版本;
2.5)执行docker build-t<升级后目标镜像>进行增量更新;
2.6)重新启动目标镜像的容器;
2.7)依次执行更新后置脚本。
CN202010333272.9A 2020-04-24 2020-04-24 一种对Docker容器镜像实现离线增量更新的方法 Active CN111552495B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010333272.9A CN111552495B (zh) 2020-04-24 2020-04-24 一种对Docker容器镜像实现离线增量更新的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010333272.9A CN111552495B (zh) 2020-04-24 2020-04-24 一种对Docker容器镜像实现离线增量更新的方法

Publications (2)

Publication Number Publication Date
CN111552495A CN111552495A (zh) 2020-08-18
CN111552495B true CN111552495B (zh) 2023-04-28

Family

ID=72003964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010333272.9A Active CN111552495B (zh) 2020-04-24 2020-04-24 一种对Docker容器镜像实现离线增量更新的方法

Country Status (1)

Country Link
CN (1) CN111552495B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112379903B (zh) * 2020-11-09 2023-04-18 杭州安恒信息技术股份有限公司 版本更新方法、装置、系统、电子装置和存储介质
CN113485720B (zh) * 2021-05-21 2022-05-27 苏州德姆斯信息技术有限公司 一种微服务系统的离线升级方法
CN114879984B (zh) * 2022-07-07 2022-10-18 杭州阿启视科技有限公司 动态构建docker镜像减少离线文件体积的方法
CN116501363A (zh) * 2023-06-29 2023-07-28 杭州美创科技股份有限公司 软件离线快速升级方法、装置、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739616A (zh) * 2018-12-05 2019-05-10 国云科技股份有限公司 一种云平台容器镜像批量制作方法
CN110908703A (zh) * 2019-10-24 2020-03-24 中国船舶重工集团公司第七0九研究所 一种软件包仓库按需镜像方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679527B (zh) * 2013-11-26 2017-12-01 中国银联股份有限公司 虚拟机镜像离线升级方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109739616A (zh) * 2018-12-05 2019-05-10 国云科技股份有限公司 一种云平台容器镜像批量制作方法
CN110908703A (zh) * 2019-10-24 2020-03-24 中国船舶重工集团公司第七0九研究所 一种软件包仓库按需镜像方法、装置及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张瑞林 ; 吴学敏 ; .Docker容器技术在后端服务设计中的应用.电脑知识与技术.2019,(13),全文. *
耿朋 ; 陈伟 ; 魏峻 ; .面向Dockerfile的容器镜像构建工具.计算机系统应用.2016,(11),全文. *

Also Published As

Publication number Publication date
CN111552495A (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN111552495B (zh) 一种对Docker容器镜像实现离线增量更新的方法
US10990365B2 (en) Container image building using dependency container images
US10496399B2 (en) Using a data dictionary to determine an upgrade edition of a relational database table
US8863114B2 (en) Managing software packages using a version control system
US7590599B2 (en) System and method of automatically maintaining and recycling software components
CN107247592B (zh) 应对多业务场景下的模型管理系统及方法
US9442708B1 (en) System and method for installing, updating and uninstalling applications
CN104918114B (zh) 一种操作系统升级方法及装置
CN107577475A (zh) 一种数据中心集群系统的软件包管理方法及系统
CN109375944B (zh) 一种基于区块链数据结构的终端软件分发验证方法
WO2011105023A1 (ja) 処理装置および書込方法
CN112882729A (zh) 应用镜像升级方法、装置、计算机设备和存储介质
CN111930465A (zh) 一种基于Kubernetes的达梦主从集群部署方法和装置
CN110750546A (zh) 一种数据库的更新方法及装置
CN113138781A (zh) Csv配置更新方法、存储介质
CN111722868A (zh) 一种申威防火墙快速移植高版本linux内核的方法
CN117591170B (zh) 一种龙芯PMON平台支持基于OSTree系统的方法及装置、存储介质
CN102902562A (zh) 一种组件式多模网管补丁包安装方法及装置
CN116820427A (zh) 一种软件研发项目管理方法、设备及介质
CN115061726A (zh) 脚本文件批量处理方法、装置、设备、介质和程序产品
CN117908908B (zh) 基于OSTree的嵌入式系统安装方法
CN109117167A (zh) 一种基于zynq芯片的启动软件更新方法
CN114610357A (zh) 一种容器镜像和软件系统资源分离发布、部署及升级方法
CN113419771B (zh) 一种应用软件的升级包制作方法、系统及升级方法、系统
CN1298149A (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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Chen Lei

Inventor after: Zhang Xiaoyu

Inventor after: Zhu Litong

Inventor after: Zhu Feng

Inventor after: Qiu Yuan

Inventor after: Zhao Weiming

Inventor before: Chen Lei

Inventor before: Zhang Xiaoyu