CN112698873A - 一种基于Docker技术的轨道交通用系统运行控制方法及系统 - Google Patents
一种基于Docker技术的轨道交通用系统运行控制方法及系统 Download PDFInfo
- Publication number
- CN112698873A CN112698873A CN202011598172.5A CN202011598172A CN112698873A CN 112698873 A CN112698873 A CN 112698873A CN 202011598172 A CN202011598172 A CN 202011598172A CN 112698873 A CN112698873 A CN 112698873A
- Authority
- CN
- China
- Prior art keywords
- docker
- application program
- environment
- operating system
- 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
Images
Classifications
-
- 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
-
- 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/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- 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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种基于Docker技术的轨道交通用系统运行控制方法及系统,其包括:轨道交通车载设备开机并进入车载设备硬件存储器操作系统环境后,确认是否成功启动Docker服务运行环境,是则对车载设备继续进行其它初始化工作;为应用服务可执行程序创建单独的Docker镜像容器;在所述Docker镜像容器内,加载基础操作系统环境指定目录下的应用程序并运行该应用程序,应用程序运行中产生的数据文件同步在基础操作系统环境下存储;基础操作系统环境停止运行过程中,Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器。本发明实现了应用程序实际运行环境与车载设备基础系统环境相分离的理念,使得应用程序不会对车载设备基础系统环境造成任何不利结果。
Description
技术领域
本发明涉及轨道交通系统控制技术领域,尤其涉及一种基于Docker技术的轨道交通用系统运行控制方法及系统。
背景技术
我国轨道交通的不断发展和行业内互连互通程度的加深,带来了对于轨道交通设备的巨大需求,从而推动了轨道交通设备种类、数量的不断增加,也促使设备的功能变得更加全面和复杂,这必然给应用软件的实现、运行控制工作带来巨大的挑战。
现有轨道交通产品主要由硬件产品和软件产品组成。硬件产品为软件产品提供运行的系统环境和硬件存储资源(比如,内存资源、硬盘资源)。但是,在轨道交通系统或产品实际的使用过程中,会出现很多难以解决、甚至灾难性的问题。一旦出现这种问题,不但难以查找问题原因,动辄更换软件文件,修改、更换硬件系统环境,甚至需要更换整套硬件和软件产品。这些问题包括硬件系统文件损坏,如出现坏道、坏区;硬件关键系统文件被误删除;系统存储空间被非法占满等。例如,(1)HXD2B型电力机车DDU产品(司机显示单元产品)中Linux系统出现文件坏道、文件坏区,并且难以修复。日积月累导致硬件资源完全报废、且断电重启无法自动恢复。解决办法只能是重新格式化系统,甚至更换硬件存储器;(2)HXD2型电力机车DDU产品(司机显示单元产品)中window pe系统出现文件坏道、文件坏区、文件病毒,并且难以修复。日积月累导致硬件资源完全报废、且断电重启无法自动恢复。解决办法只能是重新格式化系统,甚至更换硬件存储器;(3)HXD2型电力机车TCMS系统产品(网络控制产品)中类Unix系统文件出现误删除后,系统断电直接无法启动。解决办法只能更换硬件存储器;(4)轨道交通地面试验台产品,在突然断电的情况下,出现试验台系统损坏,断电重启无法自动恢复。解决办法只能是更换硬件存储器。
综上可知,在轨道交通领域,鉴于轨道交通车俩运行地点的不确定性,且大批量更换硬件系统、硬件存储器,对于产品全生命周期来说,是个致命的问题。这不但带来巨大的维护费用,还会对服务厂商信用口碑产生不利影响。一旦出现运行安全事故,那后果更不可想象。
发明内容
基于此,为解决所存在的不足,特提出了一种基于Docker技术的轨道交通用系统运行控制方法。
一种基于Docker技术的轨道交通用系统运行控制方法,其特征在于,包括:
S1、轨道交通车载设备开机并进入车载设备硬件存储器操作系统环境(以下简称:基础操作系统环境)后,确认是否成功启动Docker服务运行环境,是则对所述车载设备继续进行其它初始化工作;
S2、在基础操作系统环境下,为应用服务可执行程序(以下简称:应用程序)创建单独的Docker镜像容器;
S3、在所述Docker镜像容器内,加载基础操作系统环境指定目录下的应用程序并运行该应用程序,应用程序运行中产生的数据文件同步在基础操作系统环境下存储,所述应用程序运行中产生的数据文件至少包括日志记录文件、用户配置文件、关键事件记录文件;
S4、基础操作系统环境停止运行过程中,Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器。
可选的,在其中一个实施例中,所述步骤S1包括:
S11、轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认在基础操作系统环境下是否成功安装Docker服务,是则执行启动Docker服务操作并继续对所述车载设备进行其它初始化工作;否则执行步骤S12;
S12、查询基础操作系统环境内是否存在Docker服务运行环境安装包,是则执行Docker服务运行环境安装操作并返回步骤S11,否则执行Docker服务运行环境安装包下载操作后执行Docker服务运行环境安装操作;之后若确认Docker服务运行环境安装包下载操作失败则记录下载错误并结束进程。
可选的,在其中一个实施例中,所述步骤S2包括:
S21、在基础操作系统环境下,获取并执行Docker镜像运行脚本文件,以为应用程序提供镜像运行环境,所述Docker镜像运行脚本文件包括基础操作系统环境下所存储的应用程序对应的运行过程所涉及的数据的第一目录路径以及在所述Docker镜像容器下的所存储的应用程序对应的镜像运行过程所涉及的数据的第二目录路径;所述第一目录路径与所述第二目录路径具有唯一映射关系;
S22、在基础操作系统环境中为运行应用程序创建单独的Docker镜像容器,同时若Docker镜像容器创建失败则记录错误并结束进程。
可选的,在其中一个实施例中,所述步骤S22包括:
S221、获取Docker镜像文件以为应用程序的运行提供安装有所需工具包的实际运行系统环境;
S222、在基础操作系统环境中通过调用Docker服务加载Docker镜像文件以及应用程序运行对应的配置数据以确认加载该Docker镜像文件的Docker容器是否能够运行成功;
S223、确认成功则Docker镜像容器启动完成,否则记录错误后结束进程。
可选的,在其中一个实施例中,所述步骤S3包括:
S31、在所述Docker镜像容器内,通过所配置的配置脚本文件加载Docker镜像文件中的所述第二目录路径并判断是否读取成功;是则执行S32,否则报错;
S32、运行所述第二目录路径中的应用程序,该应用程序基于映射关系,从所述第一目录路径下映射获得,应用程序运行后将为用户提供对应的应用软件服务功能;应用程序运行过程中将同步在基础操作系统环境下存储运行过程中产生的所有数据文件;所述运行过程中产生的所有数据文件的存储过程为基于所述映射关系,将应用程序运行过程中的所述所有数据文件写入到基础操作系统环境对应的第一目录路径下。
此外,为解决传统技术在存在的不足,还提出了一种基于Docker技术的轨道交通用系统运行控制系统。
一种基于Docker技术的轨道交通用系统运行控制系统,其特征在于,包括:
初始化单元,其能够在轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认是否成功启动Docker服务运行环境,是则对所述车载设备继续进行其它初始化工作;
镜像容器创建单元,其能够在基础操作系统环境下,为应用程序创建单独的Docker镜像容器;
运行单元,其能够在所述Docker镜像容器内,运行应用程序并同步在基础操作系统环境下存储应用程序运行过程中生成的所有数据文件,所述数据文件至少包括日志记录文件、用户配置文件、关键事件记录文件;
删除单元,其能够在基础操作系统环境停止运行过程中,调用Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器。
可选的,在其中一个实施例中,所述初始化单元基于下述初始化策略执行初始化操作,其包括:
S11、轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认在基础操作系统环境下是否成功安装Docker服务,是则执行启动Docker服务操作并继续对所述车载设备进行其它初始化工作;否则执行步骤S12;
S12、查询基础操作系统环境内是否存在Docker服务运行环境安装包,是则执行Docker服务运行环境安装操作并返回步骤S11,否则执行Docker服务运行环境安装包下载操作后执行Docker服务运行环境安装操作;之后若确认Docker服务运行环境安装包下载操作失败则记录下载错误并结束进程。
可选的,在其中一个实施例中,所述镜像容器创建单元包括:
获取模块,该模块其能够在基础操作系统环境下,获取并执行Docker镜像运行脚本文件,以为应用程序提供Docker镜像运行环境,所述Docker镜像运行脚本文件包括基础操作系统环境下所存储的应用程序对应的运行过程所涉及的数据的第一目录路径以及在所述Docker镜像容器下的所存储的应用程序对应的镜像运行过程所涉及的数据的第二目录路径;所述第一目录路径与所述第二目录路径具有唯一映射关系;
镜像容器创建模块,该模块能够为应用程序创建单独的Docker镜像容器,同时若Docker镜像容器创建失败则记录错误并结束进程。
可选的,在其中一个实施例中,所述镜像容器创建模块包括:
镜像文件获取子模块,其能够获取Docker镜像文件以为应用程序的运行提供安装有所需工具包实际运行系统环境;
加载子模块,其能够在基础操作系统环境中通过调用Docker服务加载Docker镜像文件以及应用程序运行对应的配置数据以确认加载该Docker镜像文件的Docker容器是否能够运行成功;
容器创建子模块,该模块在确定Docker容器能够运行成功后,生成加载有Docker镜像文件的Docker镜像容器。
可选的,在其中一个实施例中,所述运行单元基于下述运行策略运行,其包括:S31、在所述Docker镜像容器内,通过所配置的配置脚本文件加载Docker镜像文件中的所述第二目录路径并判断是否读取成功;是则执行S32,否则报错;
S32、运行所述第二目录路径中的应用程序,该应用程序基于映射关系,从所述第一目录路径下映射获得,应用程序运行后将为用户提供对应的应用软件服务功能;应用程序运行过程中将同步在基础操作系统环境下存储运行过程中产生的所有数据文件;所述运行过程中产生的所有数据文件的存储过程为基于所述映射关系,将应用程序运行过程中的所述所有数据文件写入到基础操作系统环境对应的第一目录路径下。
此外,为解决传统技术在面对时存在的不足,还提出了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行所述的方法。
实施本发明实施例,将具有如下有益效果:
本发明基于Docker技术,实现了应用程序实际运行环境与车载设备基础系统环境相分离的理念,使得应用程序不会对实际运行环境造成的任何不利结果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中实施本发明对应的技术基础步骤流程图;
图2为一个实施例中实施本发明对应的实施应用运行过程示意图;
图3为一个实施例中实施本发明对应的步骤S4对应的运行过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一元件称为第二元件,且类似地,可将第二元件为第一元件。第一元件和第二元件两者都是元件,但其不是同一元件。
在本实施例中,特提出了一种基于Docker技术的轨道交通用系统运行控制方法,如图1-图3所示,该方法主要包括下述过程:在电力机车的车载设备上电启动后,在车载设备基础操作系统环境中,通过一定的配置(通常对应脚本配置文件)自动调用Docker服务加载、运行Docker镜像文件形成Docker容器;Docker容器运行起来后,调用基础操作系统环境中“共享目录”下的应用程序可执行文件、应用软件配置文件等数据文件,以便成功运行应用软件达到对外提供应用功能服务的目的。
基于上述目的,如图1所示的一种基于Docker技术的轨道交通用系统运行控制方法,其特征在于,包括:
S1、轨道交通车载设备开机并进入车载设备硬件存储器操作系统环境(以下简称:基础操作系统环境)后,确认是否成功启动Docker服务运行环境,是则对所述车载设备继续进行其它初始化工作;
S2、在基础操作系统环境下,为应用服务可执行程序(以下简称:应用程序)创建单独的Docker镜像容器;
S3、在所述Docker镜像容器内,加载基础操作系统环境指定目录下的应用程序并运行该应用程序,应用程序运行中产生的数据文件同步在基础操作系统环境下存储,所述应用程序运行中产生的数据文件至少包括日志记录文件、用户配置文件、关键事件记录文件;
S4、基础操作系统环境停止运行过程中,Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器。
在上述步骤S3中,应用程序在Docker镜像容器的Docker镜像文件中运行时,这里提及的Docker镜像文件实际只是基础操作系统环境中存放的Docker镜像文件的一个虚拟复制,所以,对这个Docker镜像文件的一切修改、操作都是对这个复制镜像文件的操作,不会影响基础操作系统环境中原始Docker镜像文件。然而,在应用程序运行过程中执行文件需要存储在基础操作系统环境中,而不是这个Docker镜像中。因此步骤S3是本方法的核心步骤之一,因为通常,电力机车车载设备运行的应用程序或者软件会频繁与它运行的系统环境进行交互,例如,应用软件向系统环境写大量日志、修改系统环境的环境变量等。而这种操作一旦出现偏差,就会损坏系统环境;当系统环境损坏后,就必须重新更换系统或者更换硬件内存卡,相当麻烦和复杂;使用本方法后,损坏的系统环境只是一个Docker镜像文件虚拟拷贝,不会对原始Docker镜像文件造成影响,更不会对基础操作系统环境造成任何影响。
在一些具体的实施例中,所述步骤S1包括:
S11、轨道交通车载设备开机即接通电源启动后会引导进入车载设备基础操作系统环境,确认在基础操作系统环境(例如Window10作为宿主环境)下是否成功安装Docker服务,是则执行启动Docker服务操作并对所述车载设备进行其它初始化工作(硬件初始化和系统软件初始化),以成功启动Docker服务;否则执行步骤S12;本例选用在window10系统上安装Docker Desktop版本17.12.0-ce,以提供制作Docker镜像文件的Docker服务;
S12、查询基础操作系统环境内是否存在Docker服务运行环境安装包,是则执行Docker服务运行环境安装操作并返回步骤S11,否则执行Docker服务运行环境安装包下载操作后执行Docker服务运行环境安装操作;之后若确认Docker服务运行环境安装包下载操作失败则记录下载错误(在系统syslog中记录error日志)并结束进程基础操作系统环境初始化。
在一些具体的实施例中,车载设备的系统软件初始化过程中,当把Docker服务成功启动后,需要执行自动加载运行Docker镜像文件的脚本文件过程以创建Docker容器(进而为应用程序运行准备一切环境),所述步骤S2包括:S21、在基础操作系统环境下,获取并执行Docker镜像运行脚本文件,以为应用程序提供镜像运行环境,所述Docker镜像运行脚本文件包括基础操作系统环境下所存储的应用程序对应的运行过程所涉及的数据(软件可执行文件相关内容)的第一目录路径(其下存储应用文件)以及在所述Docker镜像容器下的所存储的应用程序对应的镜像运行过程所涉及的数据的第二目录路径(其下存储应用文件的镜像文件);所述第一目录路径与所述第二目录路径具有唯一映射关系;Docker镜像运行脚本文件被加载运行后,该镜像文件便成为应用程序运行的系统环境。因此,Docker镜像文件的制作过程中,需要在该镜像文件中安装应用程序成功运行所需的工具包,因此设置步骤S22,即S22、在基础操作系统环境中为运行应用程序创建单独的Docker镜像容器,同时若Docker镜像容器创建失败则记录错误并结束进程,其具体包括:S221、获取Docker镜像文件以为应用程序的运行提供安装有所需工具包的实际运行系统环境即获得此基础镜像文件上安装应用程序成功运行所需的工具包,如搜索查询带有office标签的基于精简Centos系统的Docker镜像文件;例如本实施例中,工具包包括:GCC/G++:7.3.1;Git:2.11.0;CMake:3.11g;Boost:1.65.1;Yaml-cpp:0.6.2;Google test:1.8.0;S222、在基础操作系统环境中通过调用Docker服务加载Docker镜像文件以及应用程序运行对应的配置数据以确认应用程序是否能够在加载启动上述S221的Docker基础镜像文件上运行成功,至此,Docker基础镜像文件被成功加载;优选的,可通过在线方式(已联通互联网)或离线方式安装程序软件成功运行依赖的工具包;S223、确认成功则Docker镜像容器启动完成;本步骤成功后,将应用程序拷贝到该Docker镜像文件中直接运行,测试是否能够运行成功;或者将应用程序软件源代码拷贝到该Docker镜像文件中,编译生成应用程序再运行,以测试是否能够运行成功;测试验证通过后,生成Docker镜像文件及Docker镜像文件压缩包。在上述步骤中,Docker镜像加载脚本文件执行后,即会生成一个Docker镜像容器,Docker容器在“基础操作系统环境”内以独立进程的方式存在,所述Docker容器中含有基于Docker镜像技术的一个虚拟拷贝Docker镜像文件,该虚拟拷贝Docker镜像文件提供了应用程序运行的一切环境并且其也会在这个虚拟拷贝Docker镜像文件上运行,向外提供应用逻辑服务功能。优选的,Docker镜像容器创建失败则记录错误并结束进程包括:如果Docker容器生成失败,则在系统syslog中记录error日志,并结束进程基础操作系统环境初始化。另,Docker镜像文件制作时,尽量少的进行docker commit操作,以减少docker镜像文件分层(layer),从而有效减小镜像文件的大小。Docker镜像文件制作时,基础镜像文件如果使用yum工具在线安装各种工具包,那么通过yum安装后,建议执行“yum clean all”进行安装清理,以减小所制作的镜像文件大小。因为越小的镜像文件对于硬件存储空间的需求越小。
在一些具体的实施例中,在加载Docker镜像文件的Docker镜像容器中,调用、启动应用可执行文件的过程,需要在Docker镜像文件系统环境中配置脚本文件来实现,以成功启动应用可执行文件,以便向外部提供应用服务功能。具体的,所述步骤S3包括:S31、在所述Docker镜像容器内,通过所配置的配置脚本文件加载Docker镜像文件中的所述第二目录路径下存储的“应用可执行文件”并判断是否读取成功;是则执行S32,否则报错;即如果可执行文件未查询到,则在系统syslog中记录error日志,并结束进程应用程序启动过程;可执行文件查询到,但执行该应用可执行文件失败,则在系统syslog中记录error日志,并结束进程应用程序启动过程;S32、应用软件可执行文件执行成功后,将正式向外提供软件服务功能即运行应用程序,以为用户提供应用程序对应的软件服务功能;应用程序运行过程中将同步在基础操作系统环境下存储运行过程中产生的所有数据文件;所述运行过程中产生的所有数据文件的存储过程为基于所述映射关系(Docker镜像文件中映射“第一目录路径”所创建的目录路径),将应用程序运行过程中的所述执行文件写入到第一目录路径(“基础操作系统环境”中存放应用软件可执行文件相关内容的目录路径)下。具体文件的存储方式如下:文件的组织方式,即不同功能类别的数据文件,在基础系统环境(硬件系统环境)中存储时的文件名称、存储的目录位置不同,分别为:Docker容器系统数据文件:文件名称:sys_env_年月日.ini存储路径:/sys/env/ini/;实时数据文件:文件名称:app_realtime_年月日.csv存储路径:/var/app/csv/;日志数据文件:文件名称:app_info_年月日.log、app_debug_年月日.log、app_warning_年月日.log、app_error_年月日.log存储路径:/var/app/log/;事件数据文件:文件名称:app_event_年月日.txt存储路径:/var/app/txt/;若按照文件内容的存储内容、格式不同:Docker容器系统数据文件:格式:.ini格式内容:key与value的键值对;实时数据文件:格式:.csv格式内容:关键量数据值;日志数据文件:格式:.log格式内容:应用软件运行时产生的运行记录内容;事件数据文件:格式:.txt格式内容:偶发性的运行事件、消息。
具体可参见下表所示实例:
在一些具体的实施例中,所述步骤S4包括:基础操作系统环境停止运行(如电力机车车载设备断电或关闭础操作系统docker容器时)过程中,Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器即首先释放复制的这个docker镜像文件,然后关闭容器本身以自动停止Docker服务、调用删除Docker容器的脚本文件,释放docker容器运行所占用的基础系统环境的资源。进一步的,所述Docker镜像容器进行自我删除过程通过预设的扫尾脚本文件实现,以实现停止、销毁运行的docker容器,并清理占用的缓存存储。因为在准备停止软件产品的服务时,需要停止docker容器,之后需要销毁docker容器、清除其占用的资源,否则docker容器会一直运行在基础系统环境中;并解决现有系统中即使设备断电,其其产生的缓存文件没办法自动清除的问题。具体的,如果命令执行失败,则扫尾脚本文件停止继续向下执行,在系统syslog中记录error日志,并强制删除Docker容器;如果命令执行成功,则扫尾脚本文件继续执行,并关闭Docker容器、释放所有占用的资源。
另,所述方法还设置更新脚本文件,其能够更新基础系统环境共享目录下应用软件可执行文件,或拷贝之前记录的数据、日志文件,并提供两种方式:如U盘上传、下载方式和通过telnet、ssh等交互式方式远程访问更新方式。
基于上述设计方案,给出下述实例:首先,配置应用程序的系统环境,其应用在电力机车车载设备上,车载设备的系统环境为Linux,具体为64位Centos74;同时确认是否成功启动Docker运行环境,是则对所述车载设备进行初始化;在基础操作系统环境下,为应用程序创建单独的Docker镜像容器;其中,创建Docker镜像文件需要在一台安装有Docker服务的宿主机上进行,也可以在系统环境中进行,例如预创建的Docker镜像环境文件名称为loco_centos74_app;镜像文件创建完后,因为该镜像文件只存在于创建它的宿主环境中,因此需要将该镜像文件进行打包处理,便于向每个使用它的电力机车车载设置中进行拷贝;将loco_centos74_app_日期.tar文件从宿主环境中拷贝出来,并保存处理,便于以后向电力机车车载设备应用环境中拷贝;当将loco_centos74_app_日期.tar拷贝到电力机车车载设备应用环境中后,执行解压;在所述Docker镜像容器内,运行应用程序并同步在基础操作系统环境下存储执行文件,所述执行文件至少包括日志记录文件、用户配置文件、关键事件记录文件;基础操作系统环境停止运行后,Docker镜像容器进行自我删除。
此外,为解决传统技术在存在的不足,还提出了一种基于Docker技术的轨道交通用系统运行控制系统。
一种基于Docker技术的轨道交通用系统运行控制系统,其特征在于,包括:
初始化单元,其能够在轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认是否成功启动Docker服务运行环境,是则对所述车载设备继续进行其它初始化工作;
镜像容器创建单元,其能够在基础操作系统环境下,为应用程序创建单独的Docker镜像容器;
运行单元,其能够在所述Docker镜像容器内,运行应用程序并同步在基础操作系统环境下存储应用程序运行过程中生成的所有数据文件,所述数据文件至少包括日志记录文件、用户配置文件、关键事件记录文件;
删除单元,其能够在基础操作系统环境停止运行过程中,调用Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器。
在其中一个实施例中,所述初始化单元基于下述初始化策略执行初始化操作,其包括:
S11、轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认在基础操作系统环境下是否成功安装Docker服务,是则执行启动Docker服务操作并继续对所述车载设备进行其它初始化工作;否则执行步骤S12;
S12、查询基础操作系统环境内是否存在Docker服务运行环境安装包,是则执行Docker服务运行环境安装操作并返回步骤S11,否则执行Docker服务运行环境安装包下载操作后执行Docker服务运行环境安装操作;之后若确认Docker服务运行环境安装包下载操作失败则记录下载错误并结束进程。
在其中一个实施例中,所述镜像容器创建单元包括:获取模块,该模块其能够在基础操作系统环境下,获取并执行Docker镜像运行脚本文件,以为应用程序提供Docker镜像运行环境,所述Docker镜像运行脚本文件包括基础操作系统环境下所存储的应用程序对应的运行过程所涉及的数据的第一目录路径以及在所述Docker镜像容器下的所存储的应用程序对应的镜像运行过程所涉及的数据的第二目录路径;所述第一目录路径与所述第二目录路径具有唯一映射关系;镜像容器创建模块,该模块能够为应用程序创建单独的Docker镜像容器,同时若Docker镜像容器创建失败则记录错误并结束进程。
在其中一个实施例中,所述镜像容器创建模块包括:镜像文件获取子模块,其能够获取Docker镜像文件以为应用程序的运行提供安装有所需工具包实际运行系统环境;加载子模块,其能够在基础操作系统环境中通过调用Docker服务加载Docker镜像文件以及应用程序运行对应的配置数据以确认加载该Docker镜像文件的Docker容器是否能够运行成功;容器创建子模块,该模块在确定Docker容器能够运行成功后,生成加载有Docker镜像文件的Docker镜像容器。
在其中一个实施例中,所述运行单元基于下述运行策略运行,其包括:
S31、在所述Docker镜像容器内,通过所配置的配置脚本文件加载Docker镜像文件中的所述第二目录路径并判断是否读取成功;是则执行S32,否则报错;
S32、运行所述第二目录路径中的应用程序,该应用程序基于映射关系,从所述第一目录路径下映射获得,应用程序运行后将为用户提供对应的应用软件服务功能;应用程序运行过程中将同步在基础操作系统环境下存储运行过程中产生的所有数据文件;所述运行过程中产生的所有数据文件的存储过程为基于所述映射关系,将应用程序运行过程中的所述所有数据文件写入到基础操作系统环境对应的第一目录路径下。
鉴于本系统与上述方法方案实质相同,因此本处不再赘述。
基于相同的发明构思,本发明还提出了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行所述的方法。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于Docker技术的轨道交通用系统运行控制方法,其特征在于,包括:
S1、轨道交通车载设备开机并进入车载设备硬件存储器操作系统环境后,确认是否成功启动Docker服务运行环境,是则对所述车载设备继续进行其它初始化工作,所述车载设备硬件存储器操作系统环境即为基础操作系统环境;
S2、在基础操作系统环境下,为应用服务可执行程序创建单独的Docker镜像容器,所述应用服务可执行程序即为应用程序;
S3、在所述Docker镜像容器内,加载基础操作系统环境指定目录下的应用程序并运行该应用程序,应用程序运行中产生的数据文件同步在基础操作系统环境下存储,所述应用程序运行中产生的数据文件至少包括日志记录文件、用户配置文件、关键事件记录文件;
S4、基础操作系统环境停止运行过程中,Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1包括:
S11、轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认在基础操作系统环境下是否成功安装Docker服务,是则执行启动Docker服务操作并继续对所述车载设备进行其它初始化工作;否则执行步骤S12;
S12、查询基础操作系统环境内是否存在Docker服务运行环境安装包,是则执行Docker服务运行环境安装操作并返回步骤S11,否则执行Docker服务运行环境安装包下载操作后执行Docker服务运行环境安装操作;之后若确认Docker服务运行环境安装包下载操作失败则记录下载错误并结束进程。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2包括:
S21、在基础操作系统环境下,获取并执行Docker镜像运行脚本文件,以为应用程序提供镜像运行环境,所述Docker镜像运行脚本文件包括基础操作系统环境下所存储的应用程序对应的运行过程所涉及的数据的第一目录路径以及在所述Docker镜像容器下的所存储的应用程序对应的镜像运行过程所涉及的数据的第二目录路径;所述第一目录路径与所述第二目录路径具有唯一映射关系;
S22、在基础操作系统环境中为运行应用程序创建单独的Docker镜像容器,同时若Docker镜像容器创建失败则记录错误并结束进程。
4.根据权利要求3所述的方法,其特征在于,所述步骤S22包括:
S221、获取Docker镜像文件以为应用程序的运行提供安装有所需工具包的实际运行系统环境;
S222、在基础操作系统环境中通过调用Docker服务加载Docker镜像文件以及应用程序运行对应的配置数据以确认加载该Docker镜像文件的Docker容器是否能够运行成功;
S223、确认成功则Docker镜像容器启动完成,否则记录错误后结束进程。
5.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
S31、在所述Docker镜像容器内,通过所配置的配置脚本文件加载Docker镜像文件中的所述第二目录路径并判断是否读取成功;是则执行S32,否则报错;
S32、运行所述第二目录路径中的应用程序,该应用程序基于映射关系,从所述第一目录路径下映射获得,应用程序运行后将为用户提供对应的应用软件服务功能;应用程序运行过程中将同步在基础操作系统环境下存储运行过程中产生的所有数据文件;所述运行过程中产生的所有数据文件的存储过程为基于所述映射关系,将应用程序运行过程中的所述所有数据文件写入到基础操作系统环境对应的第一目录路径下。
6.一种基于Docker技术的轨道交通用系统运行控制系统,其特征在于,包括:
初始化单元,其能够在轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认是否成功启动Docker服务运行环境,是则对所述车载设备继续进行其它初始化工作;
镜像容器创建单元,其能够在基础操作系统环境下,为应用程序创建单独的Docker镜像容器;
运行单元,其能够在所述Docker镜像容器内,运行应用程序并同步在基础操作系统环境下存储应用程序运行过程中生成的所有数据文件,所述数据文件至少包括日志记录文件、用户配置文件、关键事件记录文件;
删除单元,其能够在基础操作系统环境停止运行过程中,调用Docker服务释放Docker镜像容器占用的软硬件资源并删除Docker镜像容器。
7.根据权利要求6所述的系统,其特征在于,所述初始化单元基于下述初始化策略执行初始化操作,其包括:
S11、轨道交通车载设备开机并进入车载设备基础操作系统环境后,确认在基础操作系统环境下是否成功安装Docker服务,是则执行启动Docker服务操作并继续对所述车载设备进行其它初始化工作;否则执行步骤S12;
S12、查询基础操作系统环境内是否存在Docker服务运行环境安装包,是则执行Docker服务运行环境安装操作并返回步骤S11,否则执行Docker服务运行环境安装包下载操作后执行Docker服务运行环境安装操作;之后若确认Docker服务运行环境安装包下载操作失败则记录下载错误并结束进程。
8.根据权利要求6所述的系统,其特征在于,所述镜像容器创建单元包括:
获取模块,该模块其能够在基础操作系统环境下,获取并执行Docker镜像运行脚本文件,以为应用程序提供Docker镜像运行环境,所述Docker镜像运行脚本文件包括基础操作系统环境下所存储的应用程序对应的运行过程所涉及的数据的第一目录路径以及在所述Docker镜像容器下的所存储的应用程序对应的镜像运行过程所涉及的数据的第二目录路径;所述第一目录路径与所述第二目录路径具有唯一映射关系;
镜像容器创建模块,该模块能够为应用程序创建单独的Docker镜像容器,同时若Docker镜像容器创建失败则记录错误并结束进程。
9.根据权利要求8所述的系统,其特征在于,所述镜像容器创建模块包括:
镜像文件获取子模块,其能够获取Docker镜像文件以为应用程序的运行提供安装有所需工具包实际运行系统环境;
加载子模块,其能够在基础操作系统环境中通过调用Docker服务加载Docker镜像文件以及应用程序运行对应的配置数据以确认加载该Docker镜像文件的Docker容器是否能够运行成功;
容器创建子模块,该模块在确定Docker容器能够运行成功后,生成加载有Docker镜像文件的Docker镜像容器。
10.根据权利要求6所述的系统,其特征在于,所述运行单元基于下述运行策略运行,其包括:
S31、在所述Docker镜像容器内,通过所配置的配置脚本文件加载Docker镜像文件中的所述第二目录路径并判断是否读取成功;是则执行S32,否则报错;
S32、运行所述第二目录路径中的应用程序,该应用程序基于映射关系,从所述第一目录路径下映射获得,应用程序运行后将为用户提供对应的应用软件服务功能;应用程序运行过程中将同步在基础操作系统环境下存储运行过程中产生的所有数据文件;所述运行过程中产生的所有数据文件的存储过程为基于所述映射关系,将应用程序运行过程中的所述所有数据文件写入到基础操作系统环境对应的第一目录路径下。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598172.5A CN112698873A (zh) | 2020-12-29 | 2020-12-29 | 一种基于Docker技术的轨道交通用系统运行控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011598172.5A CN112698873A (zh) | 2020-12-29 | 2020-12-29 | 一种基于Docker技术的轨道交通用系统运行控制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112698873A true CN112698873A (zh) | 2021-04-23 |
Family
ID=75512060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011598172.5A Pending CN112698873A (zh) | 2020-12-29 | 2020-12-29 | 一种基于Docker技术的轨道交通用系统运行控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112698873A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296868A (zh) * | 2021-07-27 | 2021-08-24 | 杭州筋斗腾云科技有限公司 | 应用平台及应用管理方法 |
CN113377512A (zh) * | 2021-06-09 | 2021-09-10 | 湖北亿咖通科技有限公司 | 车机系统的启动方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108984268A (zh) * | 2018-07-13 | 2018-12-11 | 郑州云海信息技术有限公司 | Docker系统中容器管理的方法和装置 |
CN109951561A (zh) * | 2019-03-28 | 2019-06-28 | 浙江数值跳跃网络科技有限公司 | 基于云端容器技术的去中心化基础运行环境管理系统 |
CN110380879A (zh) * | 2018-04-12 | 2019-10-25 | 上海宝信软件股份有限公司 | 基于docker的轨道交通综合监控部署方法及系统 |
CN111198744A (zh) * | 2018-11-16 | 2020-05-26 | 中标软件有限公司 | 自动化应用程序容器化和镜像备份发布的方法 |
-
2020
- 2020-12-29 CN CN202011598172.5A patent/CN112698873A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110380879A (zh) * | 2018-04-12 | 2019-10-25 | 上海宝信软件股份有限公司 | 基于docker的轨道交通综合监控部署方法及系统 |
CN108984268A (zh) * | 2018-07-13 | 2018-12-11 | 郑州云海信息技术有限公司 | Docker系统中容器管理的方法和装置 |
CN111198744A (zh) * | 2018-11-16 | 2020-05-26 | 中标软件有限公司 | 自动化应用程序容器化和镜像备份发布的方法 |
CN109951561A (zh) * | 2019-03-28 | 2019-06-28 | 浙江数值跳跃网络科技有限公司 | 基于云端容器技术的去中心化基础运行环境管理系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377512A (zh) * | 2021-06-09 | 2021-09-10 | 湖北亿咖通科技有限公司 | 车机系统的启动方法、装置及设备 |
CN113296868A (zh) * | 2021-07-27 | 2021-08-24 | 杭州筋斗腾云科技有限公司 | 应用平台及应用管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6883112B2 (en) | Storage device, backup and fault tolerant redundant method and computer program code of plurality storage devices | |
JP3511576B2 (ja) | ディスク記録再生方法および装置 | |
US7860837B2 (en) | Method and system for improving management of media used in archive applications | |
US6519762B1 (en) | Method and apparatus for restoration of a computer system hard drive | |
JP3618529B2 (ja) | ディスクアレイ装置 | |
US5826001A (en) | Reconstructing data blocks in a raid array data storage system having storage device metadata and raid set metadata | |
CN112698873A (zh) | 一种基于Docker技术的轨道交通用系统运行控制方法及系统 | |
JP5186098B2 (ja) | データをバックアップするための方法、システム、およびコンピュータ・プログラム | |
KR20140035417A (ko) | 복구 사이트에서 복제된 가상 저장 장치를 관리하는 기법 | |
CN105593829B (zh) | 从原始映像备份中排除文件系统对象的方法、系统及介质 | |
US5421003A (en) | Disk storage system with fault tolerant media maintenance | |
CN101216789A (zh) | 数据更新方法、装置及系统 | |
CN112306552A (zh) | 一种系统软件版本管理方法、装置及存储介质 | |
CN103092719A (zh) | 一种文件系统的断电保护方法 | |
CN115437818A (zh) | VxWorks系统启动失败的自动修复方法、系统、存储介质及设备 | |
CA2746602C (en) | Partial fault tolerance in an embedded appliance | |
CN115080309A (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
KR100458838B1 (ko) | 하드디스크드라이브복구방법을실행하는프로그램이저장된기록매체 | |
CN112000283A (zh) | 基于ASM实现Oracle数据库安全存储更换的方法、系统及存储介质 | |
JPH0962586A (ja) | 情報処理装置及び情報処理装置におけるデータ処理方法 | |
JP2005149248A (ja) | メタデータ修復方式,方法および記憶装置ならびにプログラム | |
US20040062093A1 (en) | Data writing apparatus, data writing/reading apparatus, data writing method and data writing/reading method | |
US8010506B2 (en) | Information processing system and network logging information processing method | |
CN114064596A (zh) | 一种日志型嵌入式文件系统设计方法、系统及存储介质 | |
JPS63262737A (ja) | デ−タベ−ス更新記録処理方法 |
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 |