0


containerd常用命令

    上回书说到k8s1.24版本为什么弃用docker而选择containerd作为容器运行时,这回我就来深入学习一下containerd,先从常用命令开始;

一、containerd常用基础命令

    首先是containerd常用的基础命令,包括开启、关闭、查看状态等:
 systemctl status  containerd  #查看containerd状态
 systemctl start   containerd  #开启containerd
 systemctl stop    containerd  #关闭containerd
 systemctl restart containerd  #重启containerd
 systemctl enable  containerd  #将containerd设置为开机自启动

 containerd help     #查看containerd帮助
 containerd version  #查看containerd版本

二、docker常用操作命令:

通过查看containerd命令帮助,可以知道

ctr --help #查看containerd命令帮助

containerd常用的操作命令格式为:

** ctr [global options] command [command options] [arguments...]**

command命令选项如下:
命令说明plugins, plugin提供有关容器插件的信息version打印客户端和服务器的版本containers, c, container容器管理content内容管理events, event显示容器事件images, image, i镜像管理leases租约管理namespaces, namespace, ns命名空间管理pprof为 containerd 提供 golang pprof 输出run运行容器snapshots, snapshot快照管理tasks, t, task任务管理install安装packageocioci工具deprecations shim直接与shim交互help, h显示命令列表或一个命令的帮助**
global options选项如下:
选项**说明--debug**打开日志调试
--address value, -a value**
containerd的GRPC服务地址

默认 "/run/containerd/containerd.sock"
--timeout value**ctr命令超时时间--connect-timeout value 连接到容器超时 --namespace value, -n value**
命名空间与命令一起使用

默认 "default"
--help, -h 帮助 --version, -v****版本

三、docker常用操作命令实践

1.查看containerd命名空间
ctr namespace ls #查看containerd命名空间

命名空间 namespace 来于指定类似于工作空间的隔离区域。

2.查看containerd的镜像
ctr images ls

因为没有指定namespace,所以查看的是默认命名空间下的镜像;

ctr -namespace=moby images ls

查看指定命名空间moby下的镜像

3.拉取containerd的镜像
ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/pause-amd64:3.2

指定k8s.io为命名空间拉取pause-amd64:3.2的镜像

​4.删除containerd的镜像

ctr -n k8s.io images rm sha256:80d28bedfe5dec59da9ebf8e6260224ac9008ab5c11dbbe16ee3ba3e4439ac2c

删除k8s.io下的镜像

5.导出containerd的镜像
ctr -n k8s.io images export pause.tar.gz registry.aliyuncs.com/google_containers/pause-amd64:3.2

6.导入containerd的镜像
ctr -n k8s.io image import pause.tar.gz

7.标记containerd的镜像
ctr -n k8s.io images tag registry.aliyuncs.com/google_containers/pause-amd64:3.2 pause:3.2

我经过测试发现**docker save -o **命令导出来的镜像可以用ctr images import 导出;同理ctr images export导出来的镜像也可以有docker load 还原;

所以两者应该是通用的;

8.运行containerd的容器
ctr -n k8s.io  run -d  docker.io/library/centos:latest centos_k8s

在后台运行一个centos镜像的容器,名称叫做centos_k8s;

9.查看运行容器的task
 ctr -n k8s.io task ls

    在docker里面,container的概念被弱化,所以docker里面的容器应该是containers和task整合在一起的;

    在containerd中,containers是镜像实例化的一个虚拟环境,提供一个磁盘、模拟空间;而task是一个初始化进程,负载运行这个虚拟环境;
10.启动指定容器的task
ctr -n k8s.io task start -d centos_k8s

11.进入指定容器的task

 ctr -n k8s.io task exec --exec-id 3118 -t centos_k8s /bin/bash

​12.删除指定容器的task

ctr -n k8s.io task rm -f centos_k8s

13.停止指定容器的task
ctr -n k8s.io task kill --signal 9 centos_k8s

14.查看容器
 ctr -n k8s.io c list

15.删除容器
 ctr -n k8s.io c rm centos

删除容器以前需要将task删除,不然会报以下错误:

四、docker与containerd常用命令对比

    很明细docker与containerd命令类型,但又有不同,我总结了一下docker与containerd命令的对比:

说明docker命令containerd命令查看本地镜像docker imagesctr images ls拉取镜像docker pull imagenamectr images pull imagename推送镜像docker push imagenamectr images push imagename给镜像打标签docker tag imagename tagname ctr images tag imagename tagname导出镜像docker save filename imagenamectr images export filename imagename导入镜像docker load filenamectr image import filename运行并创建容器docker run [options] imagename commond
ctr run [options] imagename

containername
进入容器docker exec [options] names commond ctr task exec [options] names commond查看运行的容器docker ps ctr task list删除容器docker rm [options] names
1.ctr task rm -f names

  1. ctr c rm -f names

     ps:docker可以基于dockerfile构建对象,但是ctr命令无法构建对象;
    

    我是chililopp,正在学习k8s,之后如果有新的总结或者体验也会发出来,如果有说的不对的地方,还请指点,十分感谢阅读!

本文转载自: https://blog.csdn.net/chililopp/article/details/140288670
版权归原作者 chililopp 所有, 如有侵权,请联系我们删除。

“containerd常用命令”的评论:

还没有评论