命令行大全 & docker、containerd、ctr、crictl 的联系

2023-03-19 17:31:50 浏览数 (2)

docker 和 containerd

1、docker 由 docker-client ,dockerd,containerd,docker-shim,runc 组成,所以 containerd 是 docker 的基础组件之一

2、从 k8s 的角度看,可以选择 containerd 或 docker 作为运行时组件:其中 containerd 调用链更短,组件更少,更稳定,占用节点资源更少。所以 k8s 后来的版本开始默认使用 containerd 。

3、containerd 相比于 docker , 多了 namespace 概念,每个 image 和 container 都会在各自的 namespace 下可见。

4、docker 作为 k8s 容器运行时,调用关系为:kubelet --> dockershim (在 kubelet 进程中) --> dockerd --> containerd containerd 作为 k8s 容器运行时,调用关系为:kubelet --> cri plugin(在 containerd 进程中) --> containerd

命令区分

ctr 是 containerd 的一个客户端工具。 crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 k8s 节点上的容器运行时和应用程序。 ctr -v 输出的是 containerd 的版本,crictl -v 输出的是当前 k8s 的版本,从结果显而易见你可以认为 crictl 是用于 k8s 的。

代码语言:javascript复制
# ctr -v
ctr github.com/containerd/containerd v1.4.11
# crictl -v
crictl version v1.21.0-k3s1

一般来说某个主机安装了 k8s 后,命令行才会有 crictl 命令。而 ctr 是跟 k8s 无关的,主机安装了 containerd 服务后就可以操作 ctr 命令。

常用命令

命令

docker

ctr(containerd)

crictl(kubernetes)

命令

docker

ctr(containerd)

crictl(kubernetes)

查看运行的容器

docker ps

ctr task ls/ctr container ls

crictl ps

查看镜像

docker images

ctr image ls

crictl images

查看容器日志

docker logs

crictl logs

查看容器数据信息

docker inspect

ctr container info

crictl inspect

查看容器资源

docker stats

crictl stats

启动/关闭已有的容器

docker start/stop

ctr task start/kill

crictl start/stop

运行一个新的容器

docker run

ctr run

无(最小单元为 pod)

修改镜像标签

docker tag

ctr image tag

创建一个新的容器

docker create

ctr container create

crictl create

导入镜像

docker load

ctr image import

导出镜像

docker save

ctr image export

删除容器

docker rm

ctr container rm

crictl rm

删除镜像

docker rmi

ctr image rm

crictl rmi

拉取镜像

docker pull

ctr image pull

ctictl pull

推送镜像

docker push

ctr image push

在容器内部执行命令

docker exec

crictl exec

更多命令操作,可以直接在命令行输入命令查看帮助。

作者:catoop 原文:https://blog.csdn.net/catoop/article/details/121240958

- END -

0 人点赞