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安装package
ocioci工具
deprecations 
shim直接与shim交互
help, h显示命令列表或一个命令的帮助

global options选项如下:

选项说明
--debug打开日志调试
--address value, -a value

containerd的GRPC服务地址

默认 "/run/containerd/containerd.sock"

--timeout valuectr命令超时时间
--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

2. ctr c rm -f  names

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


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

  • 35
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值