Docker 作为 K8S 最早时期的运行时唯一选择,由于各种各样的原因,Dockershim 在 K8S 1.24 后续版本中弃用,默认使用 Containerd。

Containerd

Containerd 是一个开源的容器运行时环境,由 Docker 发起并捐赠给了云原生计算基金会(CNCF)。它被设计为轻量级、高度可扩展、高性能和稳定的容器运行时。Containerd 的目标是提供核心容器功能,并作为容器生态系统的基础构件。

crictl、ctr

crictl 和 ctr 是两个与 Containerd 紧密相关的命令行工具。它们用于与 Containerd 交互并执行各种容器操作。crictl 是一个 CRI(容器运行时接口)工具,用于管理容器的生命周期和状态,例如创建、启动、停止和删除容器。而 ctr 是 Containerd 提供的命令行工具,用于管理 Containerd 的核心功能,如镜像和容器的管理。

简单说,crictl 是 K8S 的用于 CRI 命令行工具,ctr 是 Containerd 的命令行工具。

常用命令

crictl:

  • crictl pull :从容器镜像仓库中拉取指定的镜像。
  • crictl create :使用指定的镜像创建一个容器。
  • crictl start :启动指定的容器。
  • crictl stop :停止指定的容器。
  • crictl rm :删除指定的容器。

ctr:

  • ctr images pull :从容器镜像仓库中拉取指定的镜像。
  • ctr run :使用指定的镜像运行一个容器。
  • ctr container start :启动指定的容器。
  • ctr container stop :停止指定的容器。
  • ctr container delete :删除指定的容器。