1.前文
1.1 什么是Containerd
containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性,containerd 可以负责干下面这些事情:
- 管理容器的生命周期(从创建容器到销毁容器)
- 拉取/推送容器镜像
- 存储管理(管理镜像及容器数据的存储)
- 调用
runc运行容器(与runc等容器运行时交互) - 管理容器网络接口及网络
1.2 Containerd和docker区别

containerd是Docker在2016年12月从Docker Engine中分离并单独集成且开源的项目,目标是提供一个更加开放、稳定的容器运行基础设施,后来Docker宣布将containerd项目捐赠给云原生计算基金会(CNCF)
1.3 K8s为什么弃用Docker
从网络上搜索得出的原因如下:
第一个原因:
Kubernetes只能与CRI通信,因此要与Docker通信,就必须使用桥接服务。第二个原因:
Kubernetes只是用到docker中的一部分功能,甚至连docker网络与存储卷都被排查在外。而那些用不到的功能本身就可能带来安全隐患。

- 第三个原因: 调用链变得更短,依赖的功能变少。

2. 安装
2.1 下载
|
2.2 解压到根目录
|
2.3 验证
|
2.4 开机启动
|
3. 配置文件
3.1 生成默认文件
|
3.2 修改镜像源地址
|
4. ctr和crictl
4.1 两者区别
ctr: 是containerd的一个客户端工具 ;类似于docker的管理工具docker cli。crictl: 是CRI兼容的容器运行时命令行接口,可以使用它来检查和调试k8s节点上的容器运行时和应用程序
通俗点理解:
ctr是containerd自带的工具,crictl是CRI通用的系统工具。
4.2 常用命令整理
大部分命令只要把
docker关键字改为crictl命令即可操作containerd,比如 :docker ps 改成 crictl ps

虽然kubernetes弃用了docker,但是通过docker构建的镜像,在containerd中依然可以正常使用,后面会讲到….








