跳到主要内容

运行时

2024年05月14日
柏拉文
越努力,越幸运

一、认识


容器的运行时(runtime 就是运行容器和管理容器进程、镜像的工具。

二、分类


Docker 属于容器技术早期的发展项目,也是目前最广泛的容器引擎技术。当然,随着容器生态圈的日益繁荣,业界慢慢也出现了其他各种运行时工具,如 containerdrktKata ContainerCRI-O 等。

2.1 低层运行时

低层运行时 主要负责与宿主机操作系统打交道,根据指定的容器镜像在宿主机上运行容器的进程,并对容器的整个生命周期进行管理。而这个低层运行时,正是负责执行设置容器 NameSpaceCgroups 等基础操作的组件。常见的低层运行时种类有:

  • runc: 传统的运行时,基于 Linux NamespaceCgroups 技术实现,代表实现 Docker

  • runv: 基于虚拟机管理程序的运行时,通过虚拟化 guest kernel, 将容器和主机隔离开来,使得其边界更加清晰。代表实现是 Kata ContainerFirecracker

  • runsc: runc + safety, 通过拦截应用程序的所有系统调用,提供安全隔离的轻量级容器运行时沙箱。代表实现是谷歌的 gVisor

2.2 高层运行时

高层运行时 主要负责镜像的管理、转化等工作,为容器的运行做前提准备。主流的高层运行时主要containerdCRI-O高层运行时低层运行时 各司其职,容器运行时一般先由高层运行时将容器镜像下载下来,并解压转换为容器运行需要的操作系统文件,再由低层运行时启动和管理容器。