背景:在部署k8s的过程中,经常要对镜像进行操作(拉取、删除、查看等)
问题:使用过程中会发现ctr和crictl有很多相同功能,也有些不同,那区别到底在哪里?
说明:
1.ctr是containerd自带的CLI命令行工具,crictl是k8s中CRI(容器运行时接口)的客户端,k8s使用该客户端和containerd进行交互;
2.ctr和crictl命令具体区别如下,也可以--help查看。下面可以看出,crictl缺少对具体镜像的管理能力,可能是k8s层面镜像管理可以由用户自行控制,能配置pod里面容器的统一镜像仓库,镜像的管理可以有habor等插件进行处理。
命令 | ctr | crictl |
查看运行的容器 | ctr task ls/ctr container ls | crictl ps |
查看镜像 | ctr image ls | crictl images |
查看容器日志 | 无 | crictl logs |
查看容器数据信息 | ctr container info | crictl inspect |
查看容器资源 | 无 | crictl stats |
启动/关闭已有的容器 | ctr task start/kill | crictl start/stop |
运行一个新的容器 | ctr run | 无(最小单元为pod) |
修改镜像标签 | ctr image tag | 无 |
创建一个新的容器 | ctr container create | crictl create |
导入镜像 | ctr image import | 无 |
导出镜像 | ctr image export | 无 |
删除容器 | ctr container rm | crictl rm |
删除镜像 | ctr image rm | crictl rmi |
拉取镜像 | ctr image pull | crictl pull |
推送镜像 | ctr image push | 无 |
在容器内部执行命令 | 无 | crictl exec |