Docker Containerd初体验

Docker Containerd概述

​ Containerd是一个开源的容器运行时,它提供了一种标准化的方式来管理容器的生命周期。该项目最初是由Docker开发团队创建的,并在后来成为了一个独立的项目,被纳入了Cloud Native Computing Foundation(CNCF)的孵化项目中。

Containerd的特点和功能

  • 容器生命周期管理
    • Containerd管理容器的生命周期,包括容器的创建、运行、暂停、恢复、停止和销毁等操作
  • 标准化接口
    • Containerd提供了一个标准化的容器运行时接口,使得它可以与多个容器编排系统和工具集成,例如kubernetes、Docker Compose
  • 镜像管理
    • 它支持容器镜像的拉取、推送、保存和加载等操作、Containerd使用OCI(Open Cintainer Initiative)规范定义容器镜像的格式
  • 插件体系结构
    • Containerd具有可扩展插件体系接、运行用户通过插件来扩展其功能,例如存储去掉、网络插件等。
  • 跨平台支持
    • Containerd可以在不同的操作系统上运行,从而提供了跨平台的支持。
  • 与kubernetes集成
    • Contained作为Kubernetes的默认容器运行时,与kubernetes紧密集成,为容器工作负载的管理提供了良好的支持
  • 安全性
    • Contained实现了严格的容器隔离和安全性措施,确保容器之间的隔离性以及对主机系统的安全性。

Containerd的起源与背景

  • Containerd 的起源可以追溯到Docker 项目。Docker 最初作为一个开源项目推出,旨在简化应用程序的打包、分发和部署过程。Docker引入了容器的概念,将应用程序和其依赖项打包到一个容器中,使得应用在不同环境中可以一致地运行。
  • 随着Docker的发展,其架构逐渐变得复杂,包含了许多功能,如镜像构建、服务编排等。为了更好 地组织和管理这些功能,Docker团队决定将Docker 引擎拆分成多个组件,其中一个关键的组件就是 Containerd。

Containerd架构概述

  • Containerd的架构是moduiarity(模块化)和可扩展的体现,它被设计为一个轻量级、高度可定制的容器运行时s

  • 为了解耦Containerd将系统划分为了不同的组件,每个组件都由一个或多个模块写作完成(Core部分),每一种类型的模块都以插件的形式集成到Containerd中

  • Containerd组件大致分为Storage、Metadata和Runtime这三个主要方面

    在这里插入图片描述

Docker Containerd安装与使用

安装Containerd
#使用ali镜像仓库
[root@bogon ~]# rm -rf /etc/yum.repos.d/*
[root@bogon ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@bogon ~]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# step 1: 安装必要的一些系统工具
[root@bogon ~]# sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
[root@bogon ~]# sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3
[root@bogon ~]# sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
[root@bogon ~]# yum clean all
#安装Containerd
[root@bogon ~]# yum -y install containerd.io
配置Containerd
#生成配置文件
[root@bogon ~]# mkdir -p /etc/containerd #没有该目录创建
#更改默认配置文件
[root@bogon ~]# containerd config default>/etc/containerd/config.toml
#配置镜像加速
[root@bogon ~]# vim /etc/containerd/config.toml
#找到[plugins."io.containerd.grpc.v1.cri".registry.mirrors]该行
#添加阿里云镜像源[plugins."io.containerd.grpc.v1.cri".registry.config."docker.io"]endpoint = ["https://registry.cn-hangzhou.aliyuncs.com" ,"https://registry-1.docker.io"]#启动服务
[root@bogon ~]# systemctl enable containerd
[root@bogon ~]# systemctl start containerd

Containerd基本操作

镜像类操作
#拉取镜像
[root@bogon ~]# ctr images pull hub.atomgit.com/amd64/nginx:1.25.2-perl
#查看镜像
[root@bogon ~]# ctr images ls
REF                                     TYPE                                                 DIGEST                                                                  SIZE     PLATFORMS   LABELS 
hub.atomgit.com/amd64/nginx:1.25.2-perl application/vnd.docker.distribution.manifest.v2+json sha256:615eb6b7237368628ba586460fdab74bccbd4610533f59717ef2cc7c25458efc 78.5 MiB linux/amd64 -      
#检测本地镜像
[root@bogon ~]# ctr images check
#重命名
[root@bogon ~]# ctr images tag hub.atomgit.com/amd64/nginx:1.25.2-perl nginx:v1
[root@bogon ~]# ctr images tag hub.atomgit.com/amd64/nginx:1.25.2-perl nginx:v2
#删除镜像
[root@bogon ~]# ctr images tag rm nginx:v2
#镜像挂载到主目录
[root@bogon ~]# ctr images mount nginx:v1 /mnt
[root@bogon ~]# df
ctr images mount nginx:v1 /mnt
#取消镜像挂载
[root@bogon ~]# ctr images unmount /mnt 
#镜像导出 格式:ctr images export --all-platforms 文件名 镜像名称:[镜像标签]
[root@bogon ~]# ctr images export --all-platforms nginx_v1.tar nginx:v1
#镜像导入 格式:ctr images import 文件名
[root@bogon ~]# ctr imgaes import nginx_v1.tar 
容器类操作
#创建容器
[root@bogon ~]# ctr containers create nginx:v1 nginx
#列出容器
[root@bogon ~]# ctr containers ls
#查看容器详细信息
[root@bogon ~]# ctr containers info nginx
#删除容器
[root@bogon ~]# ctr containers rm nginx
[root@bogon ~]# ctr containers ls
任务类操作
#启动容器  容器需先存在
[root@bogon ~]# ctr containers create nginx:v1 nginx
[root@bogon ~]# ctr task start -d nginx 
-d 放入后台运行
#查看容器
[root@bogon ~]# ctr task ls
#进入容器
[root@bogon ~]# ctr task exec --exec-id 0 -t nginx sh 
--exec-id id随意数字但不要重复
#暂停容器
[root@bogon ~]# ctr task pause nginx
[root@bogon ~]# ctr task ls
#恢复容器
[root@bogon ~]# ctr task resume nginx
[root@bogon ~]# ctr task ls
#杀死容器
[root@bogon ~]# ctr task kill nginx
[root@bogon ~]# ctr task ls
#删除任务
[root@bogon ~]# ctr task rm nginx 
#但创建容器时,也有同名快照,即便已经删除,可以使用ctr task start -d nginx命令,利用已删除的任务启动起来,使此容器恢复运行
#删除容器
[root@bogon ~]# ctr task kill nginx
[root@bogon ~]# ctr container rm nginx
#获取容器的内存、CPU和PID的限额与使用量
[root@bogon ~]# ctr containers create nginx:v1 nginx
[root@bogon ~]# ctr task start -d nginx 
[root@bogon ~]# ctr task metrics nginx
#查看容器中所有进程在宿主机中的PID
[root@bogon ~]# ctr task ps nginx
其他操作
#列出当前所有插件
[root@bogon ~]# ctr plugins ls
#查看命名空间
[root@bogon ~]# ctr ns create test
[root@bogon ~]# ctr ns ls
#创建命名空间
[root@bogon ~]# ctr ns create test
[root@bogon ~]# ctr ns create test01
[root@bogon ~]# ctr ns ls
#删除命名空间
[root@bogon ~]# ctr ns rm test01
#使用命名空间 使用-n 指定命名空间
[root@bogon ~]# ctr -n test
test
[root@bogon ~]# ctr ns create test01
[root@bogon ~]# ctr ns ls
#删除命名空间
[root@bogon ~]# ctr ns rm test01
#使用命名空间 使用-n 指定命名空间
[root@bogon ~]# ctr -n test

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Taos 常用命令工作笔记(二)

最近测试创建一个涛思的数据库和一堆表进行测试,通过json配置文件配置字段的类型、名称等,程序通过解析json文件的配置,动态创建数据库的表。 其中表字段为驼峰结构的规则命名,创建表也是成功的,插入的测试数据也是成功…

html页面缩放自适应

html页面缩放自适应 一、为什么页面要进行缩放自适应 在我们一般web端进行页面拼接完成后,在web端的显示正常(毕竟我们是按照web端进行页面拼接完成的),那么要是用其他设备打开呢,比如手机或者平板,这时候…

【Datawhale AI夏令营第四期】魔搭-AIGC方向 Task02笔记 Scepter工具箱, 精读BaseLine代码

【Datawhale AI夏令营第四期】魔搭-AIGC方向 Task02笔记 Task02学习任务: https://linklearner.com/activity/14/10/32 传送门 我们继续看网课,并且在Kimi.AI的帮助下读一下BaseLine示例代码。 网课链接:https://space.bilibili.com/1069874…

WebService基础学习

一、XML回顾 二、HTTP协议回顾 三、复习准备 四、关于Web Service的几个问题 五、Web Service中的几个重要术语 六、开发webservice 七、WebService面试题

比char类型小的变量——位段

目录 开头1.什么是位段?2.位段的优缺点优点缺点 3.位段的实际应用…… 结尾 开头 大家好,我叫这是我58。在今天,我们将要介绍一个既比char类型小,又只用于结构体的一种东西——位段。 1.什么是位段? 位段,就是一种比char类型…

SpringBoot的事务/调度/缓存/邮件发送和一些Spring知识点总结

目录 1、SpringBoot的事务管理 2、SpringBoot的异步任务 3、SpringBoot定时任务调度 4、SpringBoot整合Mail发送邮件 5、Spring框架中的Bean的作用域 6、Spring框架中的Bean的线程安全 7、 Spring框架中的Bean生命周期 8、Spring框架如何解决循环依赖? 9、…

考研数学想考120,把李林880做到准确率80%以上够吗?

考研数学想考120,把880题做到正确率80%以上是不够的 因为最近几年的考研数学变化,很大,传统的背题型的备考方式已经没用了,而880题是这种模式的佼佼者,25版的880变动又很小,只加了40道比较综合的题目在每一…

前端 JavaScript 的 _ 语法是个什么鬼?

前言 我们有时候会看这样的前端代码: const doubled _.map(numbers, function(num) { return num * 2; });刚接触前端的童鞋可能会有点惊奇,不知道这个 _ 是什么语法,为什么这么神通广大? 其实 _ 是 Lodash 或 Underscore.js …

推荐浏览器爬虫插件:Instant Data Scraper 无需写一行代码

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

24暑假算法刷题 | Day30 | 贪心算法 IV | LeetCode 452. 用最少数量的箭引爆气球,435. 无重叠区间,763. 划分字母区间

目录 452. 用最少数量的箭引爆气球题目描述题解 435. 无重叠区间题目描述题解 763. 划分字母区间题目描述题解 452. 用最少数量的箭引爆气球 点此跳转题目链接 题目描述 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中…

传知代码-CENet及多模态情感计算实战(论文复现)

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 一、概述 本文对 “Cross-Modal Enhancement Network for Multimodal Sentiment Analysis” 论文进行讲解和手把手复现教学,解决当下热门的多模态情感计算问题,并展示在MOSI和MOSEI两个数…

拒绝内卷:利用4P营销理论打造汇报PPT

在当下的职场文化里,越来越激烈的“内卷”现象普遍存在。随着不得已的竞争压力、加班文化、以及技能和学历的通货膨胀,越来越多职场人不惜加大工作负荷和劳动投入。但这种过度的付出往往并未带来成比例的回报,有时还会因为过度工作而导致生产…

C程序设计——基本变量类型(指针1)

注释 我们先介绍一下程序设计语言中,很重要的一个部分——注释。注释通常用来说明源码的功能、作者、版权等。目前常见的C编译器,都支持两种注释,多行注释和单行注释。 多行注释 多行注释是 /* 和 */ 中间的内容,比如下面这样&…

1.微服务发展阶段

单体应用阶段 简介 系统业务量很小的时候我们把所有的代码都放在一个项目中,然后将这个项目部署在一台服务器上,整个项目所有的服务都由这台服务器去提供 优点 1.展现层、控制层、持久层全都在一个应用里面,调用方便、快速,单个请…

域名的常见解析记录类型有哪些,你了解多少?

域名的常见解析记录类型有哪些?域名解析记录用于存储有关域名及其关联 IP 地址的信息。一般,常见的记录有多种,每种类型都有其特定用途。在本文中,我们将探讨常见的几种域名解析记录类型,方便您了解。 A 记录:将域名映…

Python酷库之旅-第三方库Pandas(081)

目录 一、用法精讲 336、pandas.Series.str.rpartition方法 336-1、语法 336-2、参数 336-3、功能 336-4、返回值 336-5、说明 336-6、用法 336-6-1、数据准备 336-6-2、代码示例 336-6-3、结果输出 337、pandas.Series.str.slice方法 337-1、语法 337-2、参数 …

一文掌握SOP搭建步骤方法

如果你正在阅读这篇文章,那么你很可能在寻找如何为你的企业编写标准操作程序(SOP)的指导,以确保更好的流程被传达给你的团队并且得到遵循。 为什么SOPs很重要 SOPs必须清晰地传达你的业务流程,以标准化操作并确保盈利性…

this内存原理,成员变量和局部变量的区别

this的作用:区分局部变量和成员变量 this的本质:所在方法调用者的地址值 内存分布,this会保存地址 this.name name 等号的右边触发就近原则接收形参 把接收到的形参赋值给成员变量的name 成员变量,类方法外的变量&#xff0c…

使用克隆软件克隆Windows 10 硬盘

为什么 Windows 用户要克隆硬盘驱动器 您打算将旧硬盘升级为新硬盘吗?是否可以将操作系统迁移到 SSD?如何制作硬盘的相同副本?如何安全地升级操作系统而不会出现可启动故障问题?是否有任何安全便捷的方法可用于传输数据并升级到更…

SQL— DDL语句学习【后端 10】

SQL— DDL语句学习 在数据管理的广阔领域中,SQL(Structured Query Language)作为操作关系型数据库的编程语言,扮演着举足轻重的角色。它不仅定义了操作所有关系型数据库的统一标准,还为我们提供了强大的工具来管理、查…