当前位置: 首页 > news >正文

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

相关文章:

Docker Containerd初体验

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

开始使用 AWS SAM CLI

了解如何使用 AWS SAM CLI 在本地调试 lambda 函数 欢迎来到雲闪世界。我们将学习 AWS SAM CLI 的概念。SAM 是无服务器 应用程序 模型的缩写,是 Amazon Web Services 提供的一个框架,可以利用它在本地机器上构建应用程序并将其直接部署到 AWS Lambdas。…...

RK3588 RTL8125BG调试

RTL8125B是一款PCIE转RJ45的网卡控制器芯片,在底层调试时只需配置PCIE即可 diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nvr-demo.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-nvr-demo.dtsi index 798359eaf061..d8a7a43cdfa0 100755 --- a/arch/arm64/bo…...

Python自省(机制与函数)

Python 自省(Introspection)是一种强大的特性,它允许程序在运行时检查对象的类型、属性以及它们如何相互关联。这种能力让 Python 非常适合于快速开发、调试以及编写需要高度动态交互的代码。Python 的自省机制主要通过内置的函数和类型来实现…...

【JavaEE】JVM 内存区域划分,以及 Java 垃圾回收机制引用计数器,可达性分析等

目录 1. JVM执行流程 2. JVM运行时数据区 2.1 堆 2.2 Java虚拟机栈(线程私有) 2.3本地方法栈(线程私有) 2.4 程序计数器 2.5 元数据区 3. JVM的类加载机制 1) 加载 2) 验证 3) 准备 4) 解析 5) 初始化 双亲委派模型 4. java垃圾回收 4.1 死亡对象判断方法 a) …...

Web开发:C# MVC + Session机制实现授权免登录demo

token基础demo 【需求】 Home/Index 登录界面,校验成功后可以登录到Main/Index ,用户登录3分钟内关闭网站,再次访问Home/Index时可以免密登录Main/Index 【配置文件-Program.cs】 var builder WebApplication.CreateBuilder(args);// Add services t…...

【Qt】QWidget的font属性

QWidget的font属性 API说明 font() 获取当前 widget 的字体信息. 返回 QFont 对象. setFont(const QFont& font) 设置当前 widget 的字体信息. 关于Qfont 属性说明 family 字体家族. ⽐如 "楷体", "宋体", "微软雅⿊" 等. pointSiz…...

每天一个数据分析题(四百八十五)- 统计推断

假设检验中,关于p值说法正确的是? A. p值是在原假设成立时,样本观察结果发生的概率。 B. p值是接受原假设的概率 C. p值是相对样本统计量而言的 D. 用p值做决策比用域值做决策更准确 数据分析认证考试介绍:点击进入 题目来源…...

基于STM32的农业病虫害检测检测系统:OpenCV、MQTT、Flask框架、MySQL(代码示例)

一、项目概述 随着全球农业现代化的不断推进,智能农业监测系统应运而生。此项目旨在通过实时监测土壤湿度、温度等环境数据,结合作物生长状态的分析,提高农业生产效率和作物质量。通过引入STM32单片机、OpenCV图像处理技术和后端数据分析系统…...

算法日记day 39(动归之打家劫舍)

一、打家劫舍1 题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。…...

Vue 生命周期详解含demo、面试常问问题案例

Vue 生命周期详解、面试常问问题案例 含 demo 文章目录 Vue 生命周期详解、面试常问问题案例 含 demo一、Vue 生命周期是什么二、Vue 中如何使用生命周期钩子1. **beforeCreate**2. **created**3. **beforeMount**4. **mounted**5. **beforeUpdate**6. **updated**7. **beforeD…...

表单自定义规则的校验

在 Vue 3 中使用 Element Plus 的表单组件进行自定义规则的校验非常方便。Element Plus 提供了 ElForm 和 ElFormItem 组件,它们内置了表单验证的功能。下面我将详细介绍如何使用 Element Plus 进行自定义规则的校验。 创建表单及规则 首先,你需要创建…...

JVM 有哪些垃圾回收算法(回收机制)?

JVM 有哪些垃圾回收算法(回收机制)? 标记-清除算法 在Java虚拟机中,标记-清除算法是一种用于垃圾回收的算法。它分为两个阶段:标记阶段和清除阶段。 在标记阶段,垃圾收集器会遍历堆内存中的所有对象&…...

2024年高教社杯数学建模国赛A题思路解析+代码+论文

2024年高教社杯全国大学生数学建模竞赛(以下简称国赛)将于9月5日晚6时正式开始。 下文包含:2024国赛思路解析​、国赛参赛时间及规则信息说明、好用的数模技巧及如何备战数学建模竞赛 C君将会第一时间发布选题建议、所有题目的思路解析、相…...

Linux中yum、vim、gcc/g++的使用

目录 一、Linux 软件包管理器 yum 什么是软件包 关于 rzsz 查看软件包★ 如何安装软件★ 如何卸载软件★ Linux 开发工具 二、Linux编译器-vim使用 vim的基本概念 vim的基本操作 vim正常模式命令集 vim末行模式命令集 vim操作总结 如果在vim界面不小心按了Ctrl …...

基于模糊神经网络的金融序列预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于模糊神经网络的金融序列预测算法matlab仿真,根据序列的MAD,RSI,KD等指标实现序列的预测和最终收益分析。 2.测试软件版本以及运行结果展示 MATLAB2022A版本…...

STM32 HAL库常用功能封装

关中断 /*** brief 关闭所有中断(但是不包括fault和NMI中断)* param 无* retval 无*/ void sys_intx_disable(void) {__ASM volatile("cpsid i"); }开中断 /*** brief 开启所有中断* param 无* retval 无*/ void sys_intx_enabl…...

golang zap日志库 打印日志时显示的源文件始终是同一个问题解决方法 zap.Option函数可选项 zap.AddCallerSkip(1) 使用示例

这种情况一般出现在我们对zap日志库进行二次封装的情况下, 在打印日志的时候的源文件非我们期望的文件,如下 原因分析 出现这个问题的原因是zap函数内部在调用 runtime.Caller 时的skip层级不对了,因为我们进行了二次封装,所以za…...

BL196MQTT远程IO模块助力智能楼宇自动化升级

在智能楼宇自动化领域,每一个细节的优化都能带来整体效率与舒适度的显著提升。钡铼技术的BL196MQTT远程IO模块,以其卓越的灵活性和强大的性能,正在成为这一领域中推动楼宇自动化升级的关键力量。 钡铼技术IOy系列:创新与灵活性的…...

【面试宝典】Java面向对象面试题总结(上)

一、重写和重载 在Java中,重写(Override)和重载(Overload)是面向对象编程中两个非常重要的概念,它们都与方法的定义和调用有关,但两者有着本质的区别。 1、重写(Override&#xff…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...