k8s都开始抛弃dockerd了,ctr需要搞起了

6 篇文章 4 订阅
4 篇文章 0 订阅

明年的k8s将剔除docker shim,在未来dockerd大概率会淘汰,是时候搞起ctr。ctr是containerd客户端,虽然目前很多功能做的还没有docker那么完善,但基本功能已经具备了。下面我就来实操一下。

主要有几个常用的自命名

镜像

镜像下载

在这里插入图片描述

镜像列表查询

在这里插入图片描述
这里需要注意PLATFORMS,它是镜像的能够运行的平台标识。
其他从操作也都类似

# ctr i -h
NAME:
   ctr images - manage images

USAGE:
   ctr images command [command options] [arguments...]

COMMANDS:
   check       check that an image has all content available locally
   export      export images
   import      import images
   list, ls    list images known to containerd
   pull        pull an image from a remote
   push        push an image to a remote
   remove, rm  remove one or more images by reference
   tag         tag an image
   label       set and clear labels for an image

export导出镜像,import导入镜像

容器

创建容器

# ctr c create  docker.io/library/nginx:latest nginx

其他操作也是类似

# ctr c -h
NAME:
   ctr containers - manage containers

USAGE:
   ctr containers command [command options] [arguments...]

COMMANDS:
   create           create container
   delete, del, rm  delete one or more existing containers
   info             get info about a container
   list, ls         list containers
   label            set and clear labels for a container
   checkpoint       checkpoint a container
   restore          restore a container from checkpoint

info命令和docker的inspect命令相似,都是查看容器的详细配置。

任务

上面create的命令创建了容器后,并没有处于运行状态,只是一个静态的容器。需要启动容器,

# ctr t start -d  nginx

task代表任务的意思,

# ctr t -h
NAME:
   ctr tasks - manage tasks

USAGE:
   ctr tasks command [command options] [arguments...]

COMMANDS:
   attach           attach to the IO of a running container
   checkpoint       checkpoint a container
   delete, rm       delete one or more tasks
   exec             execute additional processes in an existing container
   list, ls         list tasks
   kill             signal a container (default: SIGTERM)
   pause            pause an existing container
   ps               list processes for container
   resume           resume a paused container
   start            start a container that have been created
   metrics, metric  get a single data point of metrics for a task with the built-in Linux runtime

后续便可以执行其他task操作,包括attach和exec 和dokcer的语义都是相同的。譬如exec进入容器可以通过

# ctr t exec --exec-id 0  -t nginx sh
#

其中,exec-id 只要唯一就行。

命名空间

除了k8s有命名空间以外,containerd也支持命名空间。docker创建的默认的都在moby空间,而k8s默认是k8s.io这个空间下面,不同空间的容器互相隔离。

# ctr ns ls
NAME    LABELS
default
moby

和k8s一样,如果不指定,ctr默认是default空间。

目前containerd的定位还是解决运行时,所以目前他还不能完全替代dockerd。譬如基于dockerfile打镜像containerd就不具备这个能力。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳清风09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值