一种docker容器化作业的方法、装置、设备及介质制造方法及图纸

技术编号:39294238 阅读:11 留言:0更新日期:2023-11-07 11:02
本发明专利技术提供了一种docker容器化作业的方法、装置、设备及可读介质,方法包括:获取docker用户组内的用户信息,并将登陆环境切换成用户组用户的登陆环境并进行登陆;启动docker容器,并获取docker容器的容器进程信息和作业进程信息;将容器进行绑定到作业进程的控制组中;将docker容器的输出重定向到作业进程的标准输出上,以使slurm能获取到docker容器的输出。通过使用本发明专利技术的方案,能够使普通用户也可以使用Slurm提交docker容器化作业,能够减少docker镜像转换的过程。能够减少docker镜像转换的过程。能够减少docker镜像转换的过程。

【技术实现步骤摘要】
一种docker容器化作业的方法、装置、设备及介质


[0001]本专利技术涉及计算机领域,并且更具体地涉及一种docker容器化作业的方法、装置、设备及可读介质。

技术介绍

[0002]高性能计算主要在生命科学、化工、航空航天、材料、气象等多个行业具有较为广泛和重要的作用,在这些领域中,一般都会涉及大量的运算,并且要求在一定的时间内完成计算任务,单靠一台通用的服务器节点是无法满足要求的,一般都会使用多台高性能服务器,通过高速网络互联,形成高性能计算集群,以极高速度并行处理大量数据。
[0003]Slurm(Simple Linux Utility for Resource Management)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统,被世界范围内的超级计算机和计算集群广泛采用。在高性能计算场景下,主流的容器技术是Singularity,主要是因为以下两个原因限制了Docker在高性能计算场景下的使用:1)普通用户使用时的权限问题:对于Docker来说,普通用户无法直接运行docker镜像,仅有root用户或处于docker用户组中的用户才有权限运行docker镜像,而在高性能计算场景下,都是普通用户编写作业脚本并提交作业,而普通用户是没有root管理员权限的。2)作业调度管理器的资源限制无法施加到docker容器:Docker的资源限制是有docker daemon进行控制的,而在高性能计算场景下,普通用户运行的作业资源限制需要由资源调度管理器(比如Slurm)进行控制。r/>[0004]为了能够使用Slurm运行docker镜像作业,业界最常用的做法是将docker镜像先转换成singularity镜像,然后使用slurm直接调度运行singularity镜像,这种方式需要先进行镜像格式转换,然后运行转换后的singularity镜像,背离了用户直接使用docker镜像的初衷。

技术实现思路

[0005]有鉴于此,本专利技术实施例的目的在于提出一种docker容器化作业的方法、装置、设备及可读介质,通过使用本专利技术的技术方案,能够使普通用户也可以使用Slurm提交docker容器化作业,能够减少docker镜像转换的过程。
[0006]基于上述目的,本专利技术的实施例的一个方面提供了一种docker容器化作业的方法,包括以下步骤:
[0007]获取docker用户组内的用户信息,并将登陆环境切换成用户组用户的登陆环境并进行登陆;
[0008]启动docker容器,并获取docker容器的容器进程信息和作业进程信息;
[0009]将容器进行绑定到作业进程的控制组中;
[0010]将docker容器的输出重定向到作业进程的标准输出上,以使slurm能获取到docker容器的输出。
[0011]根据本专利技术的一个实施例,启动docker容器包括:
[0012]使用独立的进程调用docker run命令以启动docker容器。
[0013]根据本专利技术的一个实施例,获取docker容器的容器进程信息和作业进程信息包括:
[0014]响应于docker容器启动,通过预设命令获取docker容器的容器进程信息;
[0015]通过预设函数获取docker容器的作业进程信息。
[0016]根据本专利技术的一个实施例,将容器进行绑定到作业进程的控制组中包括:
[0017]将docker容器的容器进程从docker cgroups中解绑;
[0018]将解绑后的容器进程绑定到docker容器所在的作业进程的cgroup控制组中。
[0019]根据本专利技术的一个实施例,将docker容器的容器进程从docker cgroups中解绑包括:
[0020]将docke容器的容器进程添加到系统默认的根控制组下。
[0021]根据本专利技术的一个实施例,还包括:
[0022]判断各个计算节点是否部署docker环境;
[0023]响应于计算节点未部署docker环境,获取未部署docker环境的计算节点的信息,并发送警告。
[0024]根据本专利技术的一个实施例,还包括:
[0025]执行docker wait命令以等待docker容器运行完成;
[0026]执行docker rm命令以删除docker容器。
[0027]本专利技术的实施例的另一个方面,还提供了一种docker容器化作业的装置,装置包括:
[0028]切换模块,切换模块配置为获取docker用户组内的用户信息,并将登陆环境切换成用户组用户的登陆环境并进行登陆;
[0029]获取模块,获取模块配置为启动docker容器,并获取docker容器的容器进程信息和作业进程信息;
[0030]绑定模块,绑定模块配置为将容器进行绑定到作业进程的控制组中;
[0031]定向模块,定向模块配置为将docker容器的输出重定向到作业进程的标准输出上,以使slurm能获取到docker容器的输出。
[0032]本专利技术的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
[0033]至少一个处理器;以及
[0034]存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
[0035]本专利技术的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
[0036]本专利技术具有以下有益技术效果:本专利技术实施例提供的docker容器化作业的方法,通过获取docker用户组内的用户信息,并将登陆环境切换成用户组用户的登陆环境并进行登陆;启动docker容器,并获取docker容器的容器进程信息和作业进程信息;将容器进行绑定到作业进程的控制组中;将docker容器的输出重定向到作业进程的标准输出上,以使slurm能获取到docker容器的输出的技术方案,能够使普通用户也可以使用Slurm提交docker容器化作业,能够减少docker镜像转换的过程。
附图说明
[0037]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0038]图1为根据本专利技术一个实施例的docker容器化作业的方法的示意性流程图;
[0039]图2为根据本专利技术一个实施例的docker容器化作业的方法的示意图;
[0040]图3为根据本专利技术一个实施例的docker容器化作业的装置的示意图;
[0041]图4为根据本专利技术一个实施例的计算机设备的示意图;
[0042]图5为根据本专利技术一个实施例的计算机可读存储介质本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种docker容器化作业的方法,其特征在于,包括以下步骤:获取docker用户组内的用户信息,并将登陆环境切换成用户组用户的登陆环境并进行登陆;启动docker容器,并获取docker容器的容器进程信息和作业进程信息;将容器进行绑定到作业进程的控制组中;将docker容器的输出重定向到作业进程的标准输出上,以使slurm能获取到docker容器的输出。2.根据权利要求1所述的方法,其特征在于,启动docker容器包括:使用独立的进程调用docker run命令以启动docker容器。3.根据权利要求1所述的方法,其特征在于,获取docker容器的容器进程信息和作业进程信息包括:响应于docker容器启动,通过预设命令获取docker容器的容器进程信息;通过预设函数获取docker容器的作业进程信息。4.根据权利要求1所述的方法,其特征在于,将容器进行绑定到作业进程的控制组中包括:将docker容器的容器进程从docker cgroups中解绑;将解绑后的容器进程绑定到docker容器所在的作业进程的cgroup控制组中。5.根据权利要求4所述的方法,其特征在于,将docker容器的容器进程从docker cgroups中解绑包括:将docke容器的容器进程添加到系统默认的根控制组下。6.根据权利要求1所述的方法,其特征在于,还包括:判断各个计算节点...

【专利技术属性】
技术研发人员:朱波王旭东
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1