containerd 容器运行时详解(新手必看)

containerd 容器运行时详解

     containerd 是一个开源的容器运行时,它最初是从 Docker 项目中剥离出来的,设计用于管理容器的完整生命周期,包括镜像的传输和存储、容器的执行和管理、存储和网络等。containerd 强调简单性、健壮性和可移植性,已经成为工业级标准的容器运行时。

1. containerd 的特点

  • 轻量级和高效:containerd 的设计非常轻量级,仅包含容器运行时所需的核心功能,因此它的资源占用较少,启动速度快。
  • 兼容性:containerd 支持 OCI(Open Container Initiative)标准,这意味着它可以与任何符合 OCI 标准的容器镜像和运行时兼容。
  • 可移植性:由于 containerd 不依赖于特定的操作系统或虚拟化技术,因此它可以在不同的平台上运行,实现容器的跨平台移植。
  • 可扩展性:containerd 提供了丰富的插件机制,允许用户根据需要扩展其功能,如添加新的存储驱动、网络插件等。

2. containerd 的架构

containerd 的架构非常模块化,主要由以下几个组件组成:

  • Client:客户端提供了与 containerd 守护进程交互的接口,用户可以通过客户端发送命令来管理容器和镜像。
  • Daemon:守护进程是 containerd 的核心组件,它负责执行客户端发送的命令,管理容器的生命周期,并与存储、网络等插件进行交互。
  • Shim:Shim 是一个轻量级的进程,用于管理容器的生命周期。当容器启动时,containerd 会创建一个 Shim 进程来监控容器的状态,并在容器退出时执行清理工作。
  • Storage:存储插件负责管理容器的镜像和快照。containerd 支持多种存储驱动,如 overlayfs、btrfs 等。
  • Network:网络插件负责管理容器的网络。containerd 支持多种网络模型,如 CNI(Container Network Interface)等。

3. containerd 的使用场景

containerd 广泛应用于各种场景,包括:

  • Kubernetes:Kubernetes 是目前最流行的容器编排系统之一,它使用 CRI(Container Runtime Interface)与容器运行时进行交互。containerd 实现了 CRI 接口,因此可以直接与 Kubernetes 集成,为 Kubernetes 提供容器运行时支持。
  • 云原生应用:云原生应用是一种基于容器和微服务的架构模式,它强调应用的可移植性、可扩展性和可观测性。containerd 作为云原生应用的容器运行时,可以帮助开发者构建和管理云原生应用。
  • 持续集成和持续部署(CI/CD):在 CI/CD 流程中,容器技术被广泛应用于自动化构建、测试和部署应用。containerd 作为容器运行时,可以为 CI/CD 流程提供高效、可靠的容器管理能力。

4. 安装和配置 containerd

安装 containerd 的具体步骤取决于你的操作系统和发行版。以下是一个在 Ubuntu/Debian 系统上安装 containerd 的示例:

  1. 更新软件包列表:

sudo apt update
  1. 安装 containerd:

sudo apt install containerd
  1. 配置 containerd(可选):编辑 /etc/containerd/config.toml 文件以满足你的需求,例如设置正确的 CRI 插件等。

  2. 启动并启用 containerd 服务:

sudo systemctl start containerd
sudo systemctl enable containerd
  1. 验证 containerd 是否正在运行:

sudo systemctl status containerd

5. 实战指南

在使用 containerd 时,你可能需要执行一些常见的操作,如拉取镜像、创建容器、启动容器等。以下是一些实战指南:

5.1. 列出所有容器
ctr containers list

或者简写为:

ctr c ls
5.2. 列出所有镜像
ctr images list

或者简写为:

ctr i ls
5.3. 拉取镜像
ctr images pull <image_name>:<tag>

例如:

ctr images pull docker.io/library/nginx:latest
5.4. 创建容器

注意:直接使用 ctr 命令并不直接支持创建容器,但你可以通过运行一个任务来间接创建容器。通常,你会使用如 Kubernetes 这样的编排工具来管理容器的创建。但如果你只是想测试或手动创建一个容器,你可能需要编写一个 JSON 或 YAML 配置文件来描述容器,并使用 ctr 的 tasks 子命令。

5.5 启动容器(运行任务)
ctr tasks run --net-host <image_name>:<tag> <container_id>

这里的 --net-host 是可选的,用于指定容器使用宿主机的网络命名空间。<container_id> 是你为容器指定的唯一标识符。

5.6. 停止容器(停止任务)
ctr tasks kill <container_id>

或者,如果你只想暂停容器而不是完全停止它:

ctr tasks pause <container_id>
5.7. 删除容器

首先,你需要停止容器,然后才能删除它:

ctr containers delete <container_id>

或者简写为:

ctr c rm <container_id>
5.8. 导出和导入镜像

导出镜像:

ctr images export <image_name>:<tag> <output_file>

导入镜像:

注意:ctr 本身不提供直接的导入命令,但你可以使用其他工具(如 skopeo)或手动将导出的镜像文件加载到 containerd 的存储中。

5.9. 查看帮助信息

对于任何 ctr 子命令,你都可以使用 --help 选项来查看详细的帮助信息:

ctr --help
ctr containers --help
ctr tasks --help
# 以此类推...

OK,今天的分享就到这里啦。我们下次再见。 想看Docker的详细介绍,可以看我主页的博文哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/591952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI智能名片商城小程序构建企业级私域的IMC模型:IP、MarTech与Content的深度融合

在数字化营销的新时代&#xff0c;为企业定制开发的AI智能名片B2B2C商城小程序&#xff0c;结合我们丰富的私域运营实践&#xff0c;我们深刻领悟到构建企业级私域的三大核心要素&#xff1a;IP&#xff08;企业人设&#xff09;、MarTech&#xff08;营销技术&#xff09;和Co…

飞机起飞降落

第一版&#xff1a;飞机起飞降落脚本 最大速度是1200&#xff0c;螺旋桨速度到1000的时候飞机会上升&#xff0c;到850的时候会下降&#xff0c; 有上升状态&#xff0c;平飞状态和悬浮状态&#xff0c;三个状态按e都可以使螺旋桨减速然后下降 但是是匀速下降&#xff0c;并且…

对命令模式的理解

目录 一、场景1、文本编辑器并不是一个好的例子&#xff0c;设备控制器才是2、设备控制器的demo 二、不用命令模式1、代码2、问题 三、使用命令模式1、代码2、当需求变化时2.1 新增代码2.2 优点 四、进一步思考1、省略对Command的建模可以吗&#xff1f;2、命令模式的价值 一、…

wpf转换器

WPF&#xff08;Windows Presentation Foundation&#xff09;中的转换器主要是指IValueConverter接口的实现&#xff0c;它用于在数据绑定过程中转换源数据和目标数据的类型或表示形式。这种机制使得开发者能够灵活地处理数据&#xff0c;特别是在用户界面&#xff08;UI&…

知识图谱需求

文章目录 公共安全数字经济金融科技资源优化科学研究制造业转型公共健康人文发展 公共安全 公共安全领域信息化以现代通信、网络、数据库技术为基础&#xff0c;将所研究对象各要素汇总至数据库&#xff0c;并针对各个业务领域进行定制化开发&#xff0c;以满足公共安全实战需求…

吴恩达机器学习笔记 三十七 电影推荐系统 使用特征 成本函数 协同过滤算法

以电影评分系统为例&#xff0c;令 r(i, j) 来表示用户 j 已经对电影 i 评分&#xff0c; y&#xff08;i, j&#xff09;表示评分具体是多少。 假如每部电影有自己的特征&#xff0c;那么用户 j 对电影 i 的评分预测为 w(j) * x(i) b(j) r(i, j) &#xff1a;一个用户 j 是否…

P9422 [蓝桥杯 2023 国 B] 合并数列

P9422 [蓝桥杯 2023 国 B] 合并数列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 用队列即可 当两个队列队首&#xff1a;a b &#xff0c;弹出 当a < b&#xff0c;把a加给其后一个元素&#xff0c;弹出a 当b < a&#xff0c;把b加给其后一个元素&#xff0c;弹出…

BUUCTF---misc---菜刀666

1、下载附件&#xff0c;在wireshark中分析 2、题目说是菜刀&#xff0c;联想到http协议的post方法 3、使用命令过滤 http.request.methodPOST 4、打开数据包&#xff0c;发现有个不一样 这里面有一大串的数据包 5、追踪http数据流&#xff0c;发现z2后面是一个jpg文件的文件…

计算机——磁盘

磁盘介绍 磁盘&#xff08;Disk&#xff09;是计算机存储设备的一种&#xff0c;用于持久存储和读取数据。它以圆盘状的物理结构为基础&#xff0c;通过磁性材料在盘片上制造磁道和磁点&#xff0c;利用磁头来读写数据。 磁盘分类 磁盘的常见类型包括硬盘驱动器&#xff08;…

数据库基础--MySQL多表查询之联表查询

联表查询 定义&#xff1a;多张表联合在一起查询&#xff0c;例如学生信息与学生班级表、部门与员工表 创建两张表&#xff0c;主表与从表 CREATE TABLE TestMain(id INT Not NULL AUTO_INCREMENT,nameVARCHAR(10),introduction VARCHAR(255),PRIMARY KEY(id) ); CREATE TAB…

商超物联网方案-Hotspot Service和客流分析方案概述

商超物联网方案-Hotspot Service和客流分析方案概述 场景概述 大型商场、大型综合体在相互竞争及线上消费的影响下&#xff0c;利润增长缓慢&#xff0c;迫切需要通过提供个性化服务提升顾客购物体验&#xff0c;促进利润增长。 向不同顾客推送其感兴趣的广告&#xff0c;不仅…

opengauss概述-基础知识篇-备考华为高斯

目录 &#x1f9e8;考前准备: &#x1f3a1;数据库操作语言 ✨OLTP和OLAP &#x1f3af;常用函数 &#x1f9f2;字符处理函数 关于 left 和 right 特别重点的字符串函数 &#x1f9f2;数字操作函数 关于 ceil 和 floor &#x1f9f2;时间和日期处理函数 &#x1f9f…

自定义类型:联合体

1.联合体 首先我们还是要讲解一下什么是联合体&#xff1a; 联合体&#xff08;Union&#xff09;是一种特殊的数据结构&#xff0c;它允许在相同的内存位置存储不同的数据类型。联合体的大小等于其最大成员的大小&#xff0c;因为所有成员共享同一块内存空间。联合体的每个成…

【C语言】详解预处理

、 最好的时光&#xff0c;在路上;最好的生活&#xff0c;在别处。独自上路去看看这个世界&#xff0c;你终将与最好的自己相遇。&#x1f493;&#x1f493;&#x1f493; 目录 •✨说在前面 &#x1f34b;预定义符号 &#x1f34b; #define • &#x1f330;1.#define定义常…

Oracle对空值(NULL)的 聚合函数 排序

除count之外sum、avg、max、min都为null&#xff0c;count为0 Null 不支持加减乘除&#xff0c;大小比较&#xff0c;相等比较&#xff0c;否则只能为空&#xff1b;只能用‘is [not] null’来进行判断&#xff1b; Max等聚合函数会自动“过滤null” null排序默认最大&#xf…

【STL】map和set的原理及其使用

文章目录 关联容器键值对setset的介绍set的使用set的构造函数声明1&#xff1a;函数声明2&#xff1a;函数声明3&#xff1a; set的迭代器begin和endrbegin和rend set的容量empty()size&#xff08;&#xff09; set的修改操作inserteraseclearfindcount mapmap的介绍map的构造…

拼多多怎么推广才有效果

拼多多店铺的有效推广需要综合考虑多个方面&#xff0c;包括优化店铺信息、商品详情、参与平台活动、利用社交媒体、精准营销和客户服务等。具体如下&#xff1a; 拼多多推广可以使用3an推客。3an推客&#xff08;CPS模式&#xff09;给商家提供的营销工具&#xff0c;由商家自…

Go Web 开发【Gin 框架快速开发】

1、Gin Web 快速开发 1.1、环境准备 1.1.1、导入 gin 依赖 这里就叫 gin 依赖了&#xff0c;在 Goland 命令行中输入下面的命令&#xff1a; go get -u github.com/gin-gonic/gin 1.1.2、设置代理 如果下载失败&#xff0c;最好设置一下代理&#xff0c;在 cmd 命令行中输…

功能测试_分类_用例_方法

总结 测试分类 按阶段分类 是否查看源代码分类 是否运行分类 是否自动化 其他分类 软件质量模型 开发模型-瀑布模型 测试过程模型 v w 测试用例八大要素 用例编号 用例标题 …

海外仓系统:为什么对小型海外仓企业尤为重要,该怎么看待wms系统

相对于大型海外仓企业来说&#xff0c;小型海外仓受到资金和规模的限制&#xff0c;在库存管理、订单处理能力上面临的问题尤其大。而这正是海外仓系统擅长的地方&#xff0c;现代的海外仓系统逐渐发展以云端部署方式为主&#xff0c;这也为小型海外仓企业提供了很多便利。 1、…
最新文章