掌桥专利:专业的专利平台
掌桥专利
首页

一种面向容器调用宿主机命令的通讯方法

文献发布时间:2024-04-18 19:58:53


一种面向容器调用宿主机命令的通讯方法

技术领域

本发明涉及容器与宿主机之间的通信技术领域,具体是一种面向容器调用宿主机命令的通讯方法。

背景技术

现有技术中,在使用podman或docker容器运行软件应用程序时,是将应用部署在隔离容器中进行运行和管理,软件应用程序的运行与操作系统是隔离的。若软件应用程序涉及到需要使用宿主机命令的情况,由于podman或docker的隔离性,软件应用程序将无法采用正常方式来调用宿主机的命令。为了实现能够调用宿主机的命令,现有的实现方法,通常是基于宿主机的ssh服务或者利用unix系统通讯,但采用这类通讯技术,无法记录具体操作,也无法记录命令操作运行的具体结果。由于无法记录具体操作以及具体操作带来的具体结果,使得后续排出排查各种异常问题时,无法很好的定位到出现异常之前所运行命令的各种状态和结果。围成因此,需要一种调用宿主机命令记录可查的通讯方法。

发明内容

针对现有技术的不足,本发明的目的是提供一种面向容器调用宿主机命令的通讯方法,其能够解决背景技术描述的问题。

实现本发明的目的的技术方案为:一种面向容器调用宿主机命令的通讯方法,应用于需在所述容器内运行的应用,包括以下步骤:

步骤1:在容器中启动数据库服务,并将数据库服务端口开放给宿主机,以使得数据库与宿主机之间建立通信连接;

步骤2:监听容器内的数据库服务端口,若监听到数据库服务端口有传输命令,则执行步骤3;

步骤3:基于容器内待运行的应用,将监听到命令写入并保存在数据库中;

步骤4:宿主机从数据库读取命令,并基于读取到的命令调用宿主机命令,并记录执行宿主机命令后的运行结果。

进一步地,容器为podman容器或docker容器。

进一步地,数据库为mysql数据库。

进一步地,在步骤2中,通过在宿主机内部署监听模块实现监听容器内的数据库服务端口。

进一步地,在步骤2中,还包括,

若未监听到数据库服务端口有传输命令,则继续监听或者结束处理。

进一步地,在步骤4中,设置在宿主机的程序通过读取数据库内的命令字符串数据来读取到命令,从而调用宿主机命令。

本发明的有益效果为:本发明基于mysql数据库技术+命令行代理实现的远程执行命令服务,所有调用命令的记录均保存于数据库,调用命令记录可查。另外实现调用命令更安全,且主流编程语言都支持mysql数据库操作,开发方便,适用场景广。本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

附图说明

图1为本发明的流程示意图。

具体实施方式

下面结合附图及具体实施方案,对本发明做进一步描述:

如图1所示,一种面向容器调用宿主机命令的通讯方法,应用于需在所述容器内运行的应用,该应用是指软件应用程序,简称为应用,包括以下步骤:

步骤1:在容器中启动数据库服务,并将数据库服务端口开放给宿主机,以使得数据库与宿主机之间建立通信连接。

容器可以为podman容器或docker容器。

数据库为关系型数据库,例如,可以选用mysql数据库。

步骤2:在宿主机内部署监听模块,监听模块用于监听容器内的数据库服务端口。若监听到数据库服务端口有传输命令,则执行步骤3,否则,继续监听或者结束处理。

步骤3:基于容器内待运行的应用,将监听到命令写入并保存在数据库中。

步骤4:宿主机从数据库读取命令,并基于读取到的命令调用宿主机命令,并记录执行宿主机命令后的运行结果。

其中,设置在宿主机的程序会通过读取数据库内的命令字符串数据来读取到命令,从而调用宿主机命令。

本发明基于mysql数据库技术+命令行代理实现的远程执行命令服务,所有调用命令的记录均保存于数据库,调用命令记录可查。另外实现调用命令更安全,且主流编程语言都支持mysql数据库操作,开发方便,适用场景广。本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

本说明书所公开的实施例只是对本发明单方面特征的一个例证,本发明的保护范围不限于此实施例,其他任何功能等效的实施例均落入本发明的保护范围内。对于本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及变形,而所有的这些改变以及变形都应该属于本发明权利要求的保护范围之内。

技术分类

06120116511309