轻量级容器运行时:Containerd的部署与使用

0    16    1

Tags:

👉 本文共约1875个字,系统预计阅读时间或需8分钟。

简介

GitHub:https://github.com/containerd/containerd

containerd作为轻量级容器运行时,被认为是最热门的Docker替代方案,目前已在阿里云、腾讯云等多家云商得到了支持,相信未来会有非常不错的发展前景。

部署containerd

  1. 下载二进制文件

  1. 解压文件到/usr/local

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
  1. 下载containerd.service文件,用于启动服务

  1. 启动服务

  1. 安装runc

  1. 安装cni插件

OK,现在我们可以开始使用了。

使用containerd

如果你对Docker熟悉的话,那么在使用containerd时应该不会有太多问题。但有一点需要注意,containerd支持namespace的概念,这里的功能与Kubernetes中的namespace相似。namespace可以看成是隔离域,一个namespace中的镜像和容器,在其他namespace中是被无法看到的。

containerd支持的客户端工具包括 ctr、nerdctl 和 crictl 三款,它们都是可以通过命令行方式来管理和操作容器,下面我们来学习一下它们的使用方式。

轻量级容器运行时:Containerd的部署与使用

1. ctr

ctr 是 containerd 的自带客户端工具,可以用于管理本地和远程的容器。ctr相对于docker客户端而言,在功能上没有那么丰富,能够实现创建、删除、运行、停止、暂停等容器基本操作。

使用示例:

  • 查看namespace

注:默认情况下,ctr 下载的镜像和启动容器都会放到default的namesapce中。

  • 拉取镜像

注:使用ctr拉取Docker官方镜像时,需要添加docker.io的完整路径,否则会报错。

  • 创建并启动容器

注:ctr没有--name的选项,因此在最后指定容器名,此处创建了一个名称为nginx的容器。

  • 查看容器

注:如果要查看其他namespace的容器,可以加上 -n,如:ctr -n k8s.io containers ls。

  • 停止容器

注:由于ctr没有stop的子命令,所以只能通过杀掉容器进程的方式来进行停止。

  • 删除容器

更多命令可以通过 ctr --help 命令查看。

2. nerdctl

nerdctl是一款第三方工具,需要单独安装。它出现的目的是为了兼容docker客户端命令,因此在使用上提供了类似的体验。nerdctl 目前处于活跃开发阶段,部分命令和功能可能还不够稳定。

安装nerdctl

使用示例:

  • 拉取镜像

  • 创建容器

  • 查看容器

  • 停止容器

  • 删除容器

更多命令可以通过 nerdctl --help 命令查看。

3. crictl

crictl 是 Kubernetes CRI(容器运行时接口)的命令行工具,支持通过 CRI 标准管理容器。与 ctr 和 nerdctl 不同的是,crictl 不能直接管理 containerd 守护进程,而是通过 CRI 接口与容器运行时通信,所以通常在Kubernetes的环境中才会使用。

使用示例:

  • 拉取镜像

  • 基于配置文件在Pod中创建容器

  • 查看容器

  • 查看Pod

  • 停止容器

  • 删除容器

ctr、nerdctl 和 crictl 都是用于管理和操作容器的命令行工具,可以根据需要选择适合自己的工具。对于需要与 Kubernetes 集成的用户,crictl 是不错的选择;而对于更多的容器开发者和运维人员,ctr 和 nerdctl 提供了更多的功能和控制。

参考

https://mp.weixin.qq.com/s/LjkPpeDotTSguh4kDLE1mQ

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部