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

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

Info

Publication number
CN111552495A
CN111552495A CN202010333272.9A CN202010333272A CN111552495A CN 111552495 A CN111552495 A CN 111552495A CN 202010333272 A CN202010333272 A CN 202010333272A CN 111552495 A CN111552495 A CN 111552495A
Authority
CN
China
Prior art keywords
mirror image
realizing
upgrade package
updating
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.)
Granted
Application number
CN202010333272.9A
Other languages
English (en)
Other versions
CN111552495B (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

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 true CN111552495A (zh) 2020-08-18
CN111552495B 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)

Cited By (4)

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

Citations (3)

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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160378456A1 (en) * 2013-11-26 2016-12-29 China Unionpay Co., Ltd. Method for offline updating virtual machine images
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容器技术在后端服务设计中的应用" *
耿朋;陈伟;魏峻;: "面向Dockerfile的容器镜像构建工具" *

Cited By (6)

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

Also Published As

Publication number Publication date
CN111552495B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
CN111552495A (zh) 一种对Docker容器镜像实现离线增量更新的方法
CN101719073B (zh) 一种基于智能客户端的按需下载实现方法
US5764992A (en) Method and apparatus for automatic software replacement
US8863114B2 (en) Managing software packages using a version control system
JP5728982B2 (ja) 処理装置および書込方法
US10990365B2 (en) Container image building using dependency container images
JP5535484B2 (ja) 自動ソフトウェアテストフレームワーク
US8886995B1 (en) Fault tolerant state machine for configuring software in a digital computer
WO2010098019A2 (en) Program update device, program update method, and information processing device
US20110302572A1 (en) Embedded network device and firmware upgrading method
CN107247592B (zh) 应对多业务场景下的模型管理系统及方法
CN103455354A (zh) 一种防止固件升级失败的方法和设备
CN105389186A (zh) 一种Java应用的热部署方法及系统
CN106371881B (zh) 一种用于服务器内程序版本更新的方法和系统
CN101188516A (zh) 一种网络设备软件系统高可靠性自适应远程更新的方法
US7143405B2 (en) Methods and arrangements for managing devices
CN110275719B (zh) 基于国产cpu和操作系统的云物理主机操作系统部署方法
JP2007080167A (ja) ソフトウェア資源配信システムと方法およびプログラム
US20110107326A1 (en) Systems and methods for space efficient software package management
CN116954673B (zh) 一种Linux操作系统的升级及还原方法
CN101141481A (zh) 更新播放器的方法、装置及系统
CN116028084A (zh) 一种基于OpenStack云平台跨版本热升级的方法、系统及终端
CN100504787C (zh) 一种软件安装的虚拟执行方法及系统
US20070156263A1 (en) Method, apparatus and system for recovery of a controller with known-compatible configuration and run-time data
CN116501363A (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