System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 容器创建方法、装置、设备及存储介质制造方法及图纸_技高网

容器创建方法、装置、设备及存储介质制造方法及图纸

技术编号:40281204 阅读:8 留言:0更新日期:2024-02-07 20:35
本申请提供一种容器创建方法、装置、设备及存储介质,可用于计算机技术领域。方法包括:第一进程在检测到容器创建指令的情况下,调用fork函数以创建目标容器对应的第二进程并对第二进程进行信号阻塞;第一进程与容器内核模块对应的第三进程建立连接并通过连接向第三进程发送容器创建请求;第三进程根据创建参数对进程标识所指代的第二进程进行配置并向第一进程发送响应消息;第一进程在创建结果为创建成功的情况下对第二进程解除信号阻塞并终止运行;第二进程启动运行目标容器对应的可执行文件。该方案考虑到容器的一些参数属于内核特性,借助于容器内核模块来为容器配置参数,相较于相关技术中在用户态创建容器的方式较为简单,提高了创建效率。

【技术实现步骤摘要】

本申请涉及计算机,尤其涉及一种容器创建方法、装置、设备及存储介质


技术介绍

1、容器是一种新兴的轻量级操作系统级虚拟化技术,其仅包含使容器化应用程序运行的应用及其必需的执行环境即可在主机操作系统上部署运行,因此并不需要完整的客户操作系统以及虚拟化的硬件。

2、相关技术中,在linux系统中创建容器时,一般是使用linux系统的用户态进程创建容器,然而容器的一些配置参数属于内核特性,例如cgroup(资源控制)、namespace(访问隔离)等特性,若这些配置参数由用户态进程来配置的话,操作复杂且速度较慢,因此容器创建的效率较低。


技术实现思路

1、本申请提供一种容器创建方法、装置、设备及存储介质,该方案考虑到容器的一些参数属于内核特性,借助于容器内核模块来为容器配置参数,相较于相关技术中在用户态创建容器的方式较为简单,提高了创建效率。

2、第一方面,本申请提供一种容器创建方法,包括:

3、第一进程在检测到容器创建指令的情况下,调用复刻fork函数以创建目标容器对应的第二进程,并对所述第二进程进行信号阻塞;所述第一进程属于用户态进程,且所述第二进程为所述第一进程的子进程;所述容器创建指令携带创建参数;

4、所述第一进程与容器内核模块对应的第三进程建立连接,并通过所述连接向所述第三进程发送容器创建请求;所述容器创建请求携带所述创建参数和所述第二进程对应的进程标识;所述容器内核模块属于内核中用于创建容器的动态可加载内核模块;所述第三进程属于内核态进程;

5、所述第三进程根据所述创建参数对所述进程标识所指代的所述第二进程进行配置,并向所述第一进程发送响应消息;所述响应消息包括创建结果,所述创建结果为创建成功或创建失败;

6、所述第一进程在所述创建结果为创建成功的情况下对所述第二进程解除信号阻塞,并终止运行;

7、所述第二进程启动运行所述目标容器对应的可执行文件。

8、可选地,所述第一进程与容器内核模块对应的第三进程建立连接,并通过所述连接向所述第三进程发送容器创建请求,包括:

9、所述第一进程与所述第三进程通过进程间通信服务建立连接;所述进程间通信服务用于内核态进程与用户态进程通信;

10、所述第一进程在连接建立成功的情况下,通过所述连接向所述第三进程发送所述容器创建请求。

11、可选地,所述方法还包括:

12、响应于设备开机,加载所述容器内核模块,并运行所述容器内核模块对应的第三进程,以创建所述进程间通信服务。

13、可选地,所述方法还包括:

14、所述第一进程在检测到容器创建指令的情况下,还对所述容器创建指令进行解析,以获得所述创建参数。

15、可选地,所述方法还包括:

16、所述第一进程在调用所述fork函数以创建所述第二进程时,还获取所述fork函数所返回的所述第二进程对应的进程标识。

17、可选地,所述方法还包括:

18、所述第一进程在所述创建结果为创建失败的情况下,输出提示信息,所述提示信息用于提示用户容器创建失败。

19、第二方面,本申请提供一种容器创建装置,包括:

20、创建模块,用于第一进程在检测到容器创建指令的情况下,调用复刻fork函数以创建目标容器对应的第二进程,并对所述第二进程进行信号阻塞;所述第一进程属于用户态进程,且所述第二进程为所述第一进程的子进程;所述容器创建指令携带创建参数;

21、发送模块,用于所述第一进程与容器内核模块对应的第三进程建立连接,并通过所述连接向所述第三进程发送容器创建请求;所述容器创建请求携带所述创建参数和所述第二进程对应的进程标识;所述容器内核模块属于内核中用于创建容器的动态可加载内核模块;所述第三进程属于内核态进程;

22、配置模块,用于所述第三进程根据所述创建参数对所述进程标识所指代的所述第二进程进行配置,并向所述第一进程发送响应消息;所述响应消息包括创建结果,所述创建结果为创建成功或创建失败;

23、解除模块,用于所述第一进程在所述创建结果为创建成功的情况下对所述第二进程解除信号阻塞,并终止运行;

24、运行模块,用于所述第二进程启动运行所述目标容器对应的可执行文件。

25、可选地,所述发送模块,包括:

26、建立子模块,用于所述第一进程与所述第三进程通过进程间通信服务建立连接;所述进程间通信服务用于内核态进程与用户态进程通信;

27、发送子模块,用于所述第一进程在连接建立成功的情况下,通过所述连接向所述第三进程发送所述容器创建请求。

28、第三方面,本申请提供一种电子设备,包括:处理器以及与所述处理器通信连接的存储器;

29、所述存储器存储计算机执行指令;

30、所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面任一项所述的容器创建方法。

31、第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的容器创建方法。

32、第五方面,本申请提供一种计算机程序产品,包括计算机执行指令,所述计算机执行指令被处理器执行时实现第一方面任一项所述的容器创建方法。

33、本申请提供的容器创建方法、装置、设备及存储介质,本申请提供了一种容器创建方案,在检测到容器创建指令的情况下,通过第一进程调用fork函数来创建第二进程,这样第二进程可以看作是待配置的目标容器,第一进程作为原进程通过向容器内核模块对应的第三进程发送容器创建请求,以使第三进程根据容器创建请求中携带的创建参数为第二进程配置参数,实现了容器参数的配置,从而借助于进程之间的通信实现了内核创建容器的目的,这一过程中第二进程处于信号阻塞中,第一进程在容器创建成功的情况下,对第二进程解除信号阻塞,由于第一进程已经完成相应的工作,通过终止运行第一进程来节约资源,而第二进程作为一个新的进程来启动运行目标容器对应的可执行文件,实现了目标容器的运行,可见该方案考虑到容器的一些参数属于内核特性,借助于容器内核模块来为容器配置参数,相较于相关技术中在用户态创建容器的方式较为简单,提高了创建效率。

本文档来自技高网...

【技术保护点】

1.一种容器创建方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述第一进程与容器内核模块对应的第三进程建立连接,并通过所述连接向所述第三进程发送容器创建请求,包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:

7.一种容器创建装置,其特征在于,所述装置包括:

8.根据权利要求7所述的装置,其特征在于,所述发送模块,包括:

9.一种电子设备,其特征在于,包括:处理器以及与所述处理器通信连接的存储器;

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至6任一项所述的容器创建方法。

【技术特征摘要】

1.一种容器创建方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述第一进程与容器内核模块对应的第三进程建立连接,并通过所述连接向所述第三进程发送容器创建请求,包括:

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1...

【专利技术属性】
技术研发人员:张建津庞清成
申请(专利权)人:中国联合网络通信集团有限公司
类型:发明
国别省市:

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

1