CN111552495A - 一种对Docker容器镜像实现离线增量更新的方法 - Google Patents
一种对Docker容器镜像实现离线增量更新的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000004519 manufacturing process Methods 0.000 claims abstract description 19
- 238000013515 script Methods 0.000 claims description 12
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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
-
- 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
本发明公开的一种对Docker容器镜像实现离线增量更新的方法包括实现离线增量更新的升级包制作步骤和实现离线增量更新的步骤。本发明的有益效果在于:本发明的方法使得可以实现离线对Docker容器镜像实现增量更新。
Description
技术领域
本发明涉及使用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);
上述的示意目录结构如下:
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)依次执行更新后置脚本。
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)
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)
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九研究所 | 一种软件包仓库按需镜像方法、装置及系统 |
-
2020
- 2020-04-24 CN CN202010333272.9A patent/CN111552495B/zh active Active
Patent Citations (3)
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)
Title |
---|
张瑞林;吴学敏;: "Docker容器技术在后端服务设计中的应用" * |
耿朋;陈伟;魏峻;: "面向Dockerfile的容器镜像构建工具" * |
Cited By (6)
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 |