docker和contanerd都是流行的容器运行时(container runtime);想讲清楚他们两之间的关系,让我们先从runC和OCI规范说起。
一、OCI标准和runC
1、OCI(open container initiative)
OCI是容器标准化组织为了推进容器技术的发展,对容器标准进行的定义;方便业界按照统一的标准进行容器开发,在2015年由Docker公司牵头制定了容器标准;OCI目前包括了两个标准:runtime-spec和image-spec,分别定义了容器运行时标准和容器镜像标准。
2、runC
runC是基于OCI规范开发的一个轻量级的容器运行时,他是一个GO语言编写的轻量级工具;他用于在linux系统中管理容器的生命周期,包括容器的创建、删除、列出、杀死、删除,但是不包括镜像的管理。
runc也是docker、containerd内部实现容器管理的工具。
3、Low-Level和High-Level容器运行时
低级容器运行时和高级容器运行时是容器技术中的两种不同类型。
低级容器运行时主要处理底层细节,利用Linux内核功能namespace和Cgroups来运行、创建容器。namespace可以让你为每个容器提供虚拟化系统资源,比如文件系统和网络,Cgroup提供了限制每个容器所能使用的资源,比如内存和CPU。它们负责创建和运行容器,但不处理像镜像构建、镜像管理、网络等高级运行时提供的功能。
高级容器运行时则提供更多功能&#x