CN116594647A - 一种基于Docker技术的软件适配方法 - Google Patents

一种基于Docker技术的软件适配方法 Download PDF

Info

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
Application number
CN202310687013.XA
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.)
Beijing University of Technology
China Institute of Water Resources and Hydropower Research
Original Assignee
Beijing University of Technology
China Institute of Water Resources and Hydropower Research
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 Beijing University of Technology, China Institute of Water Resources and Hydropower Research filed Critical Beijing University of Technology
Priority to CN202310687013.XA priority Critical patent/CN116594647A/zh
Publication of CN116594647A publication Critical patent/CN116594647A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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)
  • 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技术的软件适配方法
技术领域
本发明属于软件适配技术领域,尤其涉及一种基于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权限进入容器内部。
CN202310687013.XA 2023-06-09 2023-06-09 一种基于Docker技术的软件适配方法 Pending CN116594647A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116795453A (zh) * 2023-08-28 2023-09-22 成都中科合迅科技有限公司 应用程序的多cpu架构调用控制方法和系统

Citations (10)

* Cited by examiner, † Cited by third party
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) 一种基于容器技术的跨平台软件适配方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
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 (2)

* Cited by examiner, † Cited by third party
Title
李国一,刘家宏等: "基于TELEMAC-2D的山东东营市天鹅湖蓄滞洪区运行调度特征分析", 中国防汛抗旱, vol. 31, no. 10, pages 1 *
荣国平,张贺,邵栋编: "工业和信息化领域急需紧缺人才大数据和人工智能培养工程系列丛书 DevOps 原理方法与实践 第2版", 31 July 2022, 机械工业出版社, pages: 1 *

Cited By (2)

* Cited by examiner, † Cited by third party
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
CN109961151B (zh) 用于机器学习的计算服务的系统及用于机器学习的方法
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
US7865349B2 (en) Simulation, measurement and/or control system and method with coordinated timing
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技术的软件适配方法
CN114881233B (zh) 一种基于容器的分布式模型推理服务方法
Miranda et al. MOHID 2000-A coastal integrated object oriented model
US20200065495A1 (en) Safe-operation-constrained reinforcement-learning-based application manager
JPH10171848A (ja) アーキテクチャシステムを設計する方法
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
US20200065701A1 (en) Automated reinforcement-learning-based application manager that uses action tags and metric tags
WO2023033801A1 (en) System and method for design exploration using dynamic environment and physics simulations
US20050229170A1 (en) Optimized system-level simulation
Bryant et al. Computer Systems
KR102054980B1 (ko) 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템
CN115758789A (zh) 一种复杂实时嵌入式系统的软件架构设计与架构传递方法
Zhang et al. A Low-code Development Framework for Cloud-native Edge Systems
Unpingco Getting started with scientific python
WO2021230879A1 (en) Generating executables for target operational environments
Oltean et al. Method for rapid development of Arduino-based applications enclosing ANN
Bishnu et al. Comparing the Performance of Julia on CPUs versus GPUs and Julia-MPI versus Fortran-MPI: a case study with MPAS-Ocean (Version 7.1)
US20240192934A1 (en) Framework for development and deployment of portable software over heterogenous compute systems

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