CN116594647A - 一种基于Docker技术的软件适配方法 - Google Patents
一种基于Docker技术的软件适配方法 Download PDFInfo
- Publication number
- CN116594647A CN116594647A CN202310687013.XA CN202310687013A CN116594647A CN 116594647 A CN116594647 A CN 116594647A CN 202310687013 A CN202310687013 A CN 202310687013A CN 116594647 A CN116594647 A CN 116594647A
- Authority
- CN
- China
- Prior art keywords
- software
- file
- docker
- container
- mirror image
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000006978 adaptation Effects 0.000 title claims abstract description 22
- 238000005516 engineering process Methods 0.000 title claims abstract description 18
- 238000010276 construction Methods 0.000 claims abstract description 21
- 230000015572 biosynthetic process Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 14
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 239000013049 sediment Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Docker技术的软件适配方法,属于软件适配技术领域,该方法包括编写指令文件,并根据指令文件,利用Docker引擎和跨平台镜像构建工具构建适配于ARM架构的镜像,得到镜像文件;在以ARM架构处理器为核心的操作系统上安装Docker引擎,并运行镜像文件,得到容器;进入容器内部,选择软件的计算模块和软件的计算文件命令运行软件,完成软件适配。本发明解决了专业性科学计算软件无法向ARM架构平台迁移的问题。
Description
技术领域
本发明属于软件适配技术领域,尤其涉及一种基于Docker技术的软件适配方法。
背景技术
X86指令集采用的是复杂指令集计算机(CISC)体系结构,指令集复杂导致执行指令的效率较低、功耗较高、不够灵活。与之相比,ARM架构处理器采用精简指令集计算机(RISC)处理器,指令数量相对较少,可以通过组合实现复杂的计算和操作,不仅提高了指令运行速度,也最大限度地减少了功耗。国内飞腾、鲲鹏等厂商也已经能够实现ARM架构处理器的自主生产,并适配国产操作系统。在可预见的未来,大量的软件将迁移到ARM架构上,底层架构适配是实现国产化适配的第一步,也是实现高性能计算的有效途径,但专业性科学计算软件如何向ARM架构平台迁移是当前面临的关键难题。
发明内容
针对现有技术中的上述不足,本发明提供的一种基于Docker技术的软件适配方法解决了专业性科学计算软件无法向ARM架构平台迁移的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种基于Docker技术的软件适配方法,包括以下步骤:
S1、编写指令文件,并根据指令文件,利用Docker引擎和跨平台镜像构建工具构建适配于ARM架构的镜像,得到镜像文件;
S2、在以ARM架构处理器为核心的操作系统上安装Docker引擎,并运行镜像文件,得到容器;
S3、进入容器内部,选择软件的计算模块和软件的计算文件命令运行软件,完成软件适配。
本发明的有益效果为:编写一套完整指令文件,通过跨平台镜像构建工具生成镜像文件,在以ARM架构处理器为核心的操作系统上安装Docker引擎,直接拉取所构建镜像文件就能够生成容器并运行软件,做到了软件与ARM架构平台适配。同时,采用容器技术将软件与宿主操作系统隔离,可以免去软件安装过程中的各种环境变量的设置,避免软件与操作系统之间的冲突和不兼容性问题。
进一步地,所述步骤S1中Docker引擎的版本支持跨底层CPU架构镜像构成技术。
上述进一步方案的有益效果为:采用跨底层CPU架构镜像构成技术,基础设施可以是个人电脑或远程服务器,开发平台容易搭建,操作系统可以是适配Docker引擎的Windows或Linux,方便开发人员上手操作,减少成本。
进一步地,所述步骤S1中指令文件包括软件源文件和环境变量设置信息。
上述进一步方案的有益效果为:所述指令文件中包括了软件的源文件和环境变量设置信息,统一镜像环境变量配置和软件版本,源代码可控,避免因更新导致软件不可用,便于软件更新与二次开发。
进一步地,所述步骤S1中跨平台镜像构建工具可根据指令文件通过模拟不同底层CPU架构编译命令,生成适用于ARM架构的镜像文件。
上述进一步方案的有益效果为:Docker构建工具包扩展构建功能,在镜像内部采用类似虚拟化的机制,将应用程序和依赖打包在一个独立的容器环境中,使得软件的运行环境与底层架构隔离,实现软件的跨平台适配。
进一步地,所述步骤S3中进入容器内部具体为以root权限进入容器内部。
上述进一步方案的有益效果为:直接在容器中运行软件,解决了在应用环境和应用配置过程出现的版本更新和多个端口冲突等问题,可以一键运行在所有支持该Docker容器的ARM架构的操作平台上,做到软件的快速布置。
附图说明
图1为本发明的方法流程图。
图2为本发明软件适配存在的问题示意图。
图3为本发明实施例中镜像构建原理图。
图4为本发明实施例中telemac:v8p4版本镜像的分层构建的技术流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,在本发明的一个实施例中,一种基于Docker技术的软件适配方法,包括以下步骤:
S1、编写指令文件,并根据指令文件,利用Docker引擎和跨平台镜像构建工具构建适配于ARM架构的镜像,得到镜像文件;
S2、在以ARM架构处理器为核心的操作系统上安装Docker引擎,并运行镜像文件,得到容器;
S3、进入容器内部,选择软件的计算模块和软件的计算文件命令运行软件,完成软件适配。
本实施例中,所述ARM架构处理器为国产ARM架构处理器。
本实施例中,以水文水动力模型TELEMAC和鲲鹏920处理器为例,将两者进行适配,主要包括以下步骤:
(1)安装Docker引擎,版本为23.0.1。
(2)安装跨平台镜像构建工具,用于多平台镜像构建。
(3)编写包括源代码编译和环境变量设置的指令文件,构建适配于ARM架构的镜像。
(4)镜像构建完成后,将镜像保存到私有镜像仓库中。
(5)在以鲲鹏920处理器为核心的openEuler操作系统上安装Docker引擎。
(6)从私有镜像仓库中拉取步骤(3)所构建的镜像文件。
(7)在openEuler操作系统上运行镜像文件生成运行容器,进行案例测试。
(8)在运行容器时,指定容器的名称、端口映射、共享文件夹等参数。
(9)进入容器内部,并指定容器的名称、共享文件夹。
(10)选择计算模块和计算文件命令运行模型。
与现有方法相比,本发明的有益效果是:通过跨平台构建镜像技术,编写一套完整Dockerfile生成镜像并上传到私有仓库,在以鲲鹏920处理器为核心的openEuler操作系统上安装Docker引擎,直接拉取所构建镜像就能够直接生成容器并运行软件,做到了TELEMAC软件与openEuler操作系统适配。同时,采用容器技术将TELEMAC软件与宿主操作系统隔离,可以免去软件安装过程中的各种环境变量的设置,避免软件与操作系统之间的冲突和不兼容性问题。
本实施例中,(7)直接在容器中运行软件,解决了在应用环境和应用配置过程出现的版本更新和多个端口冲突等问题,可以一键运行在所有支持该Docker容器的ARM架构的操作平台上,做到TELEMAC软件的快速布置。
本实施例中,(8)在运行容器时,可以指定容器的名称、共享文件夹,将容器内的计算结果共享映射到宿主机对应的文件夹,避免容器意外停止,数据丢失,增加数据安全。
本实施例中,所述计算模块和计算文件命令可以灵活变化,根据所需的计算模型不同进行调整,输入所选模型对应的文件类型,使所构建的镜像具有TELEMAC软件所有计算功能。计算模块包括1D,2D和3D水动力学模型,可解决波浪传播、水质污染、地表水文、泥沙迁移等问题。启动TELEMAC-2D模块进行地表水文计算的计算文件命令如下:
telemac2d.py t2d_pluie_cn_geo_hyetograph.cas--ncsize=12telemac2d.py为选择模块命令;
t2d_pluie_cn_geo_hyetograph.cas是需要计算的算例文件;
--ncsize=12是选择并行核心数量。
所述步骤S1中Docker引擎的版本支持跨底层CPU架构镜像构成技术。
本实施例中,Docker版本必须支持跨底层CPU架构镜像构成技术。多平台镜像构建模拟器,可以通过其模拟不同底层CPU架构编译命令,使其生成适用于ARM架构的镜像文件。
所述步骤S1中指令文件包括软件源文件和环境变量设置信息。
所述步骤S1中跨平台镜像构建工具可根据指令文件通过模拟不同底层CPU架构编译命令,生成适用于ARM架构的镜像文件。
本实施例中,所述指令文件中包括了TELEMAC的源文件和环境变量设置信息,同时镜像环境变量配置和软件版本,源代码可控,避免因更新导致软件不可用,便于软件更新与二次开发。
所述步骤S3中进入容器内部具体为以root权限进入容器内部。
本实施例中,在容器中运行过程中,以root权限进入容器内部,避免容器内部软件运行过程读写权限不足导致计算报错。
本实施例中,ARM架构展现的高性能、低功耗的特征使其成为专业计算软件的首选处理器,但TELEMAC软件当前无法在ARM架构处理器为核心的操作系统上运行。
因此本发明的适配过程主要解决的就是底层架构和操作系统不一致的问题,底层架构的区别也导致了在软件适配的过程存在极大的困难。
软件适配存在的问题如图2所示。
本实施例中,基于本发明,采用Docker容器跨平台构建镜像技术对水动力学和水文学仿真软件TELEMAC进行镜像构建,在Dockerfile中对TELEMAC源代码进行编译和运行环境设置,得到拥有软件和相关运行环境的TELEMAC镜像。使其能适配到ARM架构的openEuler作为操作系统上。最后,试验生成镜像能够独立运行在openEuler操作系统上,同时保证软件运行功能不变。
本实施例中,安装Docker引擎为基于底层为ARM架构的服务器,测试了基于鲲鹏920处理器的不同操作系统:openEuler和麒麟V10,均可以使用步骤(1)所构建的镜像,进行了案例测试,计算结果与标准结果相一致,本发明实现了水文水动力计算模型TELEMAC-2D的国产ARM处理器和操作系统的适配。
本实施例中,Docker镜像是由一条条构建镜像所需的指令和参数自上而下构成,每一条命令的执行都是分层构建的过程。镜像的构建原理如图3所示。
首先选择一个基础镜像作为基础进行新镜像构建,执行第一个Dockerfile指令对基础镜像所生成的容器进行修改,添加环境变量和软件运行的必要库;然后执行类似“docker commit”的操作,将更改后的容器提交为一个新的镜像层;最后以所构建的新镜像为基础镜像,运行一个新容器继续执行下一条命令。以此方式依次执行Dockerfile中的每一条指令直至所有指令执行完毕,此时镜像也构建完成。
TELEMAC镜像的构建通过Dockerfile文件完成,Dockerfile文件将整个镜像进行了概括,其中包含了所构建镜像软件的环境变量配置、软件依赖安装、软件下载安装的操作命令等。本发明采用的Docker版本为23.0.1,图4为telemac:v8p4版本镜像的分层构建的技术流程图。
Claims (5)
1.一种基于Docker技术的软件适配方法,其特征在于,包括以下步骤:
S1、编写指令文件,并根据指令文件,利用Docker引擎和跨平台镜像构建工具构建适配于ARM架构的镜像,得到镜像文件;
S2、在以ARM架构处理器为核心的操作系统上安装Docker引擎,并运行镜像文件,得到容器;
S3、进入容器内部,选择软件的计算模块和软件的计算文件命令运行软件,完成软件适配。
2.根据权利要求1所述基于Docker技术的软件适配方法,其特征在于,所述步骤S1中Docker引擎的版本支持跨底层CPU架构镜像构成技术。
3.根据权利要求1所述基于Docker技术的软件适配方法,其特征在于,所述步骤S1中指令文件包括软件源文件和环境变量设置信息。
4.根据权利要求1所述基于Docker技术的软件适配方法,其特征在于,所述步骤S1中跨平台镜像构建工具可根据指令文件通过模拟不同底层CPU架构编译命令,生成适用于ARM架构的镜像文件。
5.根据权利要求1所述基于Docker技术的软件适配方法,其特征在于,所述步骤S3中进入容器内部具体为以root权限进入容器内部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310687013.XA CN116594647A (zh) | 2023-06-09 | 2023-06-09 | 一种基于Docker技术的软件适配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310687013.XA CN116594647A (zh) | 2023-06-09 | 2023-06-09 | 一种基于Docker技术的软件适配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116594647A true CN116594647A (zh) | 2023-08-15 |
Family
ID=87590014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310687013.XA Pending CN116594647A (zh) | 2023-06-09 | 2023-06-09 | 一种基于Docker技术的软件适配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594647A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795453A (zh) * | 2023-08-28 | 2023-09-22 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032602A (zh) * | 2018-06-07 | 2018-12-18 | 山东超越数控电子股份有限公司 | 一种软件自动适配操作系统的方法 |
CN110032376A (zh) * | 2018-12-13 | 2019-07-19 | 中国电子科技集团公司电子科学研究院 | 基于Docker的自动化软件部署方法及装置 |
CN110457066A (zh) * | 2019-07-27 | 2019-11-15 | 湖南豪威电子信息技术服务有限公司 | 使国产操作系统兼容Windows系统应用软件的架构 |
CN111309451A (zh) * | 2020-03-24 | 2020-06-19 | 广西梯度科技有限公司 | 一种实现Docker镜像交叉编译的方法 |
CN111399865A (zh) * | 2020-04-21 | 2020-07-10 | 贵州新致普惠信息技术有限公司 | 一种基于容器技术自动构建目标文件的方法 |
CN112181588A (zh) * | 2020-09-18 | 2021-01-05 | 济南浪潮数据技术有限公司 | 一种应用容器化方法、装置及电子设备和存储介质 |
CN113918274A (zh) * | 2021-09-08 | 2022-01-11 | 成都安恒信息技术有限公司 | 一种基于Docker容器的迁移KVM虚拟机的方法 |
WO2022052657A1 (zh) * | 2020-09-11 | 2022-03-17 | 苏州浪潮智能科技有限公司 | 一种ai平台镜像处理的方法和装置 |
CN114443221A (zh) * | 2022-01-11 | 2022-05-06 | 徐工汉云技术股份有限公司 | 基于buildah构建跨平台容器镜像的方法、系统及电子设备 |
CN115599499A (zh) * | 2022-10-20 | 2023-01-13 | 湖南阿姆科技有限公司(Cn) | 一种基于容器技术的跨平台软件适配方法 |
-
2023
- 2023-06-09 CN CN202310687013.XA patent/CN116594647A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032602A (zh) * | 2018-06-07 | 2018-12-18 | 山东超越数控电子股份有限公司 | 一种软件自动适配操作系统的方法 |
CN110032376A (zh) * | 2018-12-13 | 2019-07-19 | 中国电子科技集团公司电子科学研究院 | 基于Docker的自动化软件部署方法及装置 |
CN110457066A (zh) * | 2019-07-27 | 2019-11-15 | 湖南豪威电子信息技术服务有限公司 | 使国产操作系统兼容Windows系统应用软件的架构 |
CN111309451A (zh) * | 2020-03-24 | 2020-06-19 | 广西梯度科技有限公司 | 一种实现Docker镜像交叉编译的方法 |
CN111399865A (zh) * | 2020-04-21 | 2020-07-10 | 贵州新致普惠信息技术有限公司 | 一种基于容器技术自动构建目标文件的方法 |
WO2022052657A1 (zh) * | 2020-09-11 | 2022-03-17 | 苏州浪潮智能科技有限公司 | 一种ai平台镜像处理的方法和装置 |
CN112181588A (zh) * | 2020-09-18 | 2021-01-05 | 济南浪潮数据技术有限公司 | 一种应用容器化方法、装置及电子设备和存储介质 |
CN113918274A (zh) * | 2021-09-08 | 2022-01-11 | 成都安恒信息技术有限公司 | 一种基于Docker容器的迁移KVM虚拟机的方法 |
CN114443221A (zh) * | 2022-01-11 | 2022-05-06 | 徐工汉云技术股份有限公司 | 基于buildah构建跨平台容器镜像的方法、系统及电子设备 |
CN115599499A (zh) * | 2022-10-20 | 2023-01-13 | 湖南阿姆科技有限公司(Cn) | 一种基于容器技术的跨平台软件适配方法 |
Non-Patent Citations (5)
Title |
---|
GARYOND: "使用Dockerfile构建Docker镜像", pages 1 - 14, Retrieved from the Internet <URL:https://www.jianshu.com/p/cbce69c7a52f> * |
KEN的杂谈: "Docker入门:使用Dockerfile构建Docker镜像", pages 1 - 10, Retrieved from the Internet <URL:https://cloud.tencent.com/developer/article/2259804> * |
TYNAM.YANG: "通过dockerfile制作镜像", pages 1 - 7, Retrieved from the Internet <URL:https://www.cnblogs.com/tynam/p/12752881.html> * |
李国一,刘家宏等: "基于TELEMAC-2D的山东东营市天鹅湖蓄滞洪区运行调度特征分析", 中国防汛抗旱, vol. 31, no. 10, pages 1 * |
荣国平,张贺,邵栋编: "工业和信息化领域急需紧缺人才大数据和人工智能培养工程系列丛书 DevOps 原理方法与实践 第2版", 31 July 2022, 机械工业出版社, pages: 1 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795453A (zh) * | 2023-08-28 | 2023-09-22 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
CN116795453B (zh) * | 2023-08-28 | 2023-11-03 | 成都中科合迅科技有限公司 | 应用程序的多cpu架构调用控制方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kaliszyk et al. | HOL (y) Hammer: Online ATP service for HOL Light | |
US10768916B2 (en) | Dynamic generation of CPU instructions and use of the CPU instructions in generated code for a softcore processor | |
Mirchandaney et al. | Principles of runtime support for parallel processors | |
US20210350233A1 (en) | System and Method for Automated Precision Configuration for Deep Neural Networks | |
US10949263B2 (en) | Computationally efficient reinforcement-learning-based application manager | |
US20040268293A1 (en) | Automating the life cycle of a distributed Computing application | |
CN116594647A (zh) | 一种基于Docker技术的软件适配方法 | |
CN106886406A (zh) | 开发代码或文档的生成方法和装置 | |
CN114881233B (zh) | 一种基于容器的分布式模型推理服务方法 | |
Miranda et al. | MOHID 2000-A coastal integrated object oriented model | |
US11042640B2 (en) | Safe-operation-constrained reinforcement-learning-based application manager | |
JPH10171848A (ja) | アーキテクチャシステムを設計する方法 | |
US11080623B2 (en) | Automated reinforcement-learning-based application manager that uses action tags and metric tags | |
Wang et al. | The GPU version of LASG/IAP Climate System Ocean Model version 3 (LICOM3) under the heterogeneous-compute interface for portability (HIP) framework and its large-scale application | |
EP3923133A1 (en) | Systems and methods for generating service access points for rte services in code or other rte service information for use with the code | |
WO2023033801A1 (en) | System and method for design exploration using dynamic environment and physics simulations | |
CN102253884B (zh) | 模拟单板软件运行环境的方法及装置 | |
KR102054980B1 (ko) | 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템 | |
Zhang et al. | A low-code development framework for cloud-native edge systems | |
CN115454572A (zh) | 基于Docker工具构建虚拟机磁盘镜像的方法及系统 | |
US20230093197A1 (en) | Generating executables for target operational environments | |
Unpingco | Getting started with scientific python | |
Pedersen et al. | Distributed co-simulation of embedded control software using INTO-CPS | |
Cave et al. | A new approach to parallel processing | |
Oltean et al. | Method for rapid development of Arduino-based applications enclosing ANN |
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 |