最近重新玩上了k8s,由于以后k8s新版本将放弃docker,并把containerd作为运行时组件,containerd 调用链更短,组件更少,更稳定,占用节点资源更少
网上搜了一圈发现对命令这块的资料比较少,于是对其中的命令做一下对比和记录,若有错误,欢迎各位大佬指出与补充。
ctr是containerd的一个客户端工具
crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序
crictl 使用命名空间 k8s.io,即crictl image list = ctr -n=k8s.io image list
推送/拉取镜像
ctr:
ctr images push [镜像名称]:[tag]
ctr images pull [镜像名称]:[tag]
# 注意需要填写完整的镜像地址,如docker.io/library/[镜像名称]:[tag]
# 若要指定具体名称空间,如k8s的,则在ctr后添加-n k8s.io,其他名称空间类似
# 可通过ctr ns ls命令查看所有的名称空间
crictl:
crictl pull [镜像名称]:[tag]
# 无推送命令
导出/导入镜像
ctr:
ctr image export [镜像文件名] [镜像地址]
ctr image import [镜像文件名]
# 注意需要填写完整的镜像地址,如docker.io/library/[镜像名称]:[tag]
# 若要指定具体名称空间,如k8s的,则在ctr后添加-n k8s.io,其他名称空间类似
crictl:
不支持类似docker save/load或者ctr image export/import的方式,可以通过本地仓库或远程仓库pull拉取
部分命令对比
命令 | 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 |