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

docker和containerd的区别

docker和containerd的区别

1、容器运行时

1.1 容器运行时概念

容器运行时(Container Runtime)是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的核心组件之一,用于在容器内部运行应用程序,并提供隔离、资源管理和安全等功能。 在Kubernetes中,容器运行时是负责管理和运行容器的组件。在过去,Docker是最常用的容器运行时,但随着时间的推移,containerd成为Kubernetes的另一个受欢迎的容器运行时选择。注意:自kubernetes1.24 版起,Dockershim 已从Kubernetes项目中移除。

1.2 容器运行时的作用

  • 容器创建和启动:容器运行时负责根据预定义的容器配置信息(如镜像、命令、环境变量等),创建并启动容器实例。
  • 容器文件系统管理:容器运行时处理容器的文件系统,负责将镜像的内容挂载到容器的文件系统,并在容器之间提供隔离。
  • 资源限制和管理:容器运行时可以根据用户或管理员定义的资源限制,管理容器对CPU、内存、磁盘等资源的使用。
  • 容器网络:容器运行时协助配置容器的网络,使得容器可以与其他容器或外部网络进行通信。
  • 安全性:容器运行时实施安全机制,确保容器之间和宿主机之间的隔离,并防止容器中的恶意行为影响其他容器或宿主机。

2、容器运行时的类型

2.1 docker

Docker是一个开源的容器平台,提供了一整套容器解决方案,包括构建、打包、分发和运行容器。它包括Docker Engine、Docker Swarm、Docker Compose等多个组件,提供了镜像构建、容器编排等高级功能,适合需要复杂容器管理功能的用户。

2.2 containerd

Containerd是一个轻量级的容器运行时,专注于底层的容器生命周期管理,如容器的创建、启动、停止和销毁。它比Docker更轻量级,可以快速启动和运行容器,并且具有更好的性能和可扩展性。Containerd的设计更加简单和稳定,提供了API,可以与其他容器编排工具集成使用,使其更加灵活和可扩展。

3、docker和containerd在kubernetes中的区别

3.1 二者工作流程

docker的工作流程
在这里插入图片描述
containerd的工作流程
在这里插入图片描述

3.2区别

1.调用链和组件数量

当使用Docker作为容器运行时,调用关系为:kubelet --> dockershim(在kubelet进程中) --> dockerd --> containerd。这里涉及到多个组件和较长的调用链。
当使用Containerd作为容器运行时,调用关系为:kubelet --> CRI plugin(在containerd进程中) --> containerd。Containerd的调用链更短,组件更少,因此更稳定,且占用节点资源更少。

2.命名空间

Containerd引入了命名空间的概念,每个image和container都会在各自的namespace下可见。这提供了更好的隔离性和管理性。而Docker没有这种命名空间的概念。

3.日志配置和流转发通道

当使用Docker时,Docker API本身提供stream服务,kubelet内部的docker-shim会通过Docker API进行日志配置和流转发。
当使用Containerd时,可能需要额外的配置或工具来实现这些功能,因为Containerd本身不提供与Docker相同的stream服务。

4、containerd的客户端工具—nerdctl

root@master01:~# wget https://github.com/containerd/nerdctl/releases/download/v1.5.0/nerdctl-1.5.0-linux-amd64.tar.gz
root@master01:~# mkdir -p  /usr/local/containerd/bin/
root@master01:~# tar -xvf nerdctl-1.5.0-linux-amd64.tar.gz
root@master01:~# mv nerdctl /usr/local/containerd/bin/
root@master01:~# ln -s /usr/local/containerd/bin/nerdctl /usr/local/bin/nerdctl
root@master01:~# wget https://github.com/moby/buildkit/releases/download/v0.12.5/buildkit-v0.12.5.linux-amd64.tar.gz
root@master01:~# mkdir -p /usr/local/buildctl -p  && tar -zxvf  buildkit-v0.12.5.linux-amd64.tar.gz -C /usr/local/buildctl
root@master01:~# ln -s /usr/local/buildctl/bin/buildkitd /usr/local/bin/buildkitd
root@master01:~# ln -s /usr/local/buildctl/bin/buildctl /usr/local/bin/buildctl
root@master01:~# cat >> /etc/systemd/system/buildkit.service <<EOF
[Unit]
Description=BuildKit
Documentation=https://github.com/moby/buildkit[Service]
ExecStart=/usr/local/bin/buildkitd --oci-worker=false --containerd-worker=true[Install]
WantedBy=multi-user.target
EOF
root@master01:~# systemctl daemon-reload
root@master01:~# systemctl enable buildkit --now
root@master01:~# systemctl status buildkit
root@master01:~# nerdctl version
Client:Version:	v1.5.0OS/Arch:	linux/amd64Git commit:	b33a58f288bc42351404a016e694190b897cd252buildctl:Version:	v0.12.5GitCommit:	bac3f2b673f3f9d33e79046008e7a38e856b3dc6Server:containerd:Version:	1.6.31GitCommit:	e377cd56a71523140ca6ae87e30244719194a521runc:Version:	1.1.12GitCommit:	v1.1.12-0-g51d5e94

相关文章:

docker和containerd的区别

docker和containerd的区别 1、容器运行时 1.1 容器运行时概念 容器运行时&#xff08;Container Runtime&#xff09;是一种负责在操作系统层面创建和管理容器的软件工具或组件。它是容器化技术的核心组件之一&#xff0c;用于在容器内部运行应用程序&#xff0c;并提供隔离…...

汇编实现流水灯

1.使能时钟&#xff1a; 1使能GPIO的外设时钟ldr r0,0x50000A28ldr r1,[r0]orr r1,r1,#(0x3<<4)//使能第&#xff14;&#xff0c;&#xff15;位str r1,[r0] 2.设置为输出模式 设置GPIOE10为输出模式ldr r0,0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1…...

SQL生成序列浅析

01.sqlserver版本 使用sqlserver将数据复制n条 selectt.indx,t.name,tmp.vlue from (values(1,苹果) ) as t(indx, name) ,(select[number] as vluefrom master.dbo.spt_valueswhere [type] pand [number] between 1 and 10 ) as tmpspt_values是什么 spt_values是SQL Se…...

24年gdcpc省赛C题

1279:DFS 序 先不考虑多节点,先看着颗二叉树,假设他们的父亲节点是第k个被访问的点,如果先访问左子树,那么得到的结果是a1*ka2*(k1)b1*(2k)b2*(2k1),可以发现,先访问左子树,那么右子树每次的乘以的p值实际上是左子树乘以的p值加上左子树的节点个数,比如a1*k和b1*(2k),如果不看2…...

以梦为马,不负韶华(3)-AGI在企业服务的应用

AGI在企业服务中&#xff0c;各应⽤已覆盖企业全流程&#xff0c;包含⼈⼒、法务、财税、流程⾃动化、知识管理和软件开发各领域。 由于⼤语⾔模型对⽂本处理类场景有着天然且直接的适配性&#xff0c;⽂本总结、⽂本内容⽣成、服务指引等发展起步早且应⽤成熟度更⾼。 在数据…...

Xshell 使用

Xshell 使用 ①xshell 安装包 ②xshell 卸载 ③xshell 同时控制多窗口 ①xshell 安装包 Xshell 7 破解版 ②xshell 卸载 第一步: 打开控制面板卸载xshell 第二步: win+R,输入regedit,打开注册表,删除xshell相关注册信息 注册表目录: 在下面两个目录中查找xshell相关…...

【yijiej】mysql报错 之 报错:Duplicate entry 字段 for key ‘表名.idx_字段’

一、问题操作 Mysql 进行insert 操作&#xff0c;报错&#xff1a;Duplicate entry 字段 for key ‘表名.idx_字段’ 原因解析&#xff1a;idx 是做的索引键&#xff0c;是具有唯一性二、问题原因&#xff08;三种情况&#xff0c;当前我遇到的情况是第一种&#xff09; 1、当 …...

解决npm卡死,无法安装依赖

npm卡死&#xff0c;无法安装依赖 异常描述原因分析与解决方法 异常描述 1.无法进入命令行&#xff0c;或是很慢没反应 2.装表格无限滚动的el-table-infinite-scroll依赖一上午了&#xff0c;也不能装&#xff0c;报错提示 原因分析与解决方法 1.命令行的问题&#xff1a;缓…...

速卖通测评揭秘:如何选择安全的渠道操作

许多商家对测评存在误解&#xff0c;认为只需进行几次测评就能迅速打造爆款。实际上&#xff0c;测评是一个需要计划和持久性的过程&#xff0c;以便让平台检测到产品的受众程度并提高产品的曝光和权重。 在进行测评时&#xff0c;安全是首要考虑的问题。平台可以通过设备、网…...

ping不通ip的解决方法

解决ping不通IP的问题可以通过以下几种方法&#xff1a; 1.检查IP配置&#xff1a;确保所有设备的IP地址、子网掩码和默认网关配置正确。如果使用DHCP&#xff0c;请确认设备已设置为自动获取IP地址&#xff0c;并检查DHCP服务器的地址池配置是否正确且未耗尽。 2.检查网络设…...

Linux x86_64 UEFI 启动

文章目录 前言一、UEFI二、Disk device compatibility2.1 GPT 磁盘分区表2.1.1 简介2.1.2 Linux 2.2 ESP&#xff08;EFI&#xff09; 文件系统2.2.1 简介2.2.2 LinuxLinux Kernel EFI Boot Stub 三、UEFI GPT grub23.1 简介3.2 引导方式 3.3 BOOTX64.EFI3.4 shimx64.efi3.5 …...

妙解设计模式之适配器模式

目录 适配器模式的概念生活中的例子在编程中的例子 软件工程中的实际应用兼容旧接口整合第三方库简化复杂接口跨平台支持 总结 适配器模式的概念 适配器模式是一种结构设计模式&#xff0c;它允许将接口不兼容的类通过一个适配器类进行适配&#xff0c;使得这些类可以一起工作…...

【Linux】Linux下centos更换国内yum源

&#x1f331;博客主页&#xff1a;青竹雾色间 &#x1f331;系列专栏&#xff1a;Linux &#x1f618;博客制作不易欢迎各位&#x1f44d;点赞⭐收藏➕关注 目录 1. 备份旧的 YUM 源文件2. 下载国内的 YUM 源文件阿里云&#xff1a;网易&#xff1a; 3. 清理 YUM 缓存4. 更新…...

HTML静态网页成品作业(HTML+CSS)——动漫熊出没介绍网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有3个页面。 二、作品演示 三、代…...

算法训练营day42

dp含义确定 递推公式 初始化 遍历顺序 打印 题目1&#xff1a;62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int uniquePaths(int m, int n) {// 定义dp数组 含义是每个坐标到达的路径vector<vector<int>> dp(m, vector&l…...

【Vue】自动导入组件

1. 下载插件 npm install unplugin-vue-components 2. 修改vite.config.js import { fileURLToPath, URL } from node:urlimport { defineConfig } from vite import vue from vitejs/plugin-vue import Components from unplugin-vue-components/vite // 按需加载自定义组件/…...

mfc140u.dll丢失的解决方法有哪些?怎么全面修复mfc140u.dll文件

mfc140u.dll丢失其实相对来说不太常见到&#xff0c;因为这个文件一般是不丢失的&#xff0c;不过既然有人遇到这种问题&#xff0c;那么小编一定满足各位&#xff0c;给大家详细的唠叨一下mfc140u.dll丢失的各种解决方法&#xff0c;教大家以最快最有效率的方法去解决mfc140u.…...

MySQL8报错Public Key Retrieval is not allowedz 怎么解决?

问题描述 当我们使用数据库管理工具连接mysql8的时候&#xff0c;可能遇到报错&#xff1a; Public Key Retrieval is not allowed 解决办法 1、在连接属性中配置allowPublicKeyRetrieval设置为true 2、在连接URL中加上配置allowPublicKeyRetrieval为true...

海外动态IP代理如何提高效率?

动态住宅IP代理之所以能够有效提升数据爬取的效率和准确性&#xff0c;主要归功于其提供的IP地址具有高度的匿名性和真实性。这些IP地址来自于真实的用户网络&#xff0c;因此相比于数据中心IP&#xff0c;它们更不容易被网站的安全系统标识为爬虫。此外&#xff0c;由于IP地址…...

解析边缘计算网关的优势-天拓四方

随着信息化、智能化浪潮的持续推进&#xff0c;计算技术正以前所未有的速度发展&#xff0c;而边缘计算网关作为其中的重要一环&#xff0c;以其独特的优势正在逐步改变我们的生活方式和工作模式。本文将详细解析边缘计算网关的优势。 首先&#xff0c;边缘计算网关具有显著的…...

86、【Agent】【OpenCode】bash 工具提示词(完结)

【声明】本博客所有内容均为个人业余时间创作&#xff0c;所述技术案例均来自公开开源项目&#xff08;如Github&#xff0c;Apache基金会&#xff09;&#xff0c;不涉及任何企业机密或未公开技术&#xff0c;如有侵权请联系删除 背景 上篇 blog 【Agent】【OpenCode】bash 工…...

如何在脑电信号处理的星辰大海中,找到你的开源坐标?[特殊字符]

如何在脑电信号处理的星辰大海中&#xff0c;找到你的开源坐标&#xff1f;&#x1f680; 【免费下载链接】eeglab EEGLAB is an open source signal processing environment for electrophysiological signals running on Matlab and developed at the SCCN/UCSD 项目地址: …...

别再为多设备同步发愁了!手把手教你用NI-DAQmx的‘通道扩展’功能搞定多机箱数据采集

多设备数据采集同步实战&#xff1a;NI-DAQmx通道扩展功能深度解析 在工业测试与科研数据采集领域&#xff0c;工程师们经常面临一个棘手问题&#xff1a;当单个数据采集设备的通道数无法满足需求时&#xff0c;如何实现多个设备的无缝协同工作&#xff1f;想象一下汽车ECU测试…...

明日方舟智能基建管理终极指南:5分钟实现全自动资源生产

明日方舟智能基建管理终极指南&#xff1a;5分钟实现全自动资源生产 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》繁琐的基建管理而头疼吗&#xff1f;每天花费大量时间手动…...

OpenRPA完全指南:免费开源的企业级RPA自动化终极方案

OpenRPA完全指南&#xff1a;免费开源的企业级RPA自动化终极方案 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa OpenRPA是一款免费开源的企业级RPA&#xff08;机器人流程自动化&#xff09;软…...

如何用嘎嘎降AI处理心理学论文:心理学研究生毕业论文降AI4.8元完整操作教程

如何用嘎嘎降AI处理心理学论文&#xff1a;心理学研究生毕业论文降AI4.8元完整操作教程 关于心理学论文降AI教程&#xff0c;有几个细节提前知道能少走很多弯路。 核心用嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元&#xff0c;达标率99.26%。这篇…...

chatgpt-mirai-qq-bot内存持久化:文件和Redis存储方案对比

chatgpt-mirai-qq-bot内存持久化&#xff1a;文件和Redis存储方案对比 你是否在为聊天机器人的记忆管理而烦恼&#xff1f;在多轮对话中&#xff0c;如何确保机器人能够记住上下文&#xff0c;同时保证数据的安全性和性能&#xff1f;chatgpt-mirai-qq-bot提供了两种内存持久化…...

WebShell-Bypass-Guide preg_replace函数RCE漏洞利用指南

WebShell-Bypass-Guide preg_replace函数RCE漏洞利用指南 【免费下载链接】WebShell-Bypass-Guide 从零学习Webshell免杀手册 项目地址: https://gitcode.com/gh_mirrors/we/WebShell-Bypass-Guide WebShell-Bypass-Guide是一份从零学习Webshell免杀的实用手册&#xff…...

Python初学者项目练习12--找出年龄最大者

一、练习题目 给定一个字典&#xff0c;其中每个人的姓名作为键&#xff0c;对应的年龄作为值。请找出年龄最大者的姓名和年龄。 二、代码 1.初始版本 代码如下&#xff1a; people {"小张": 12, "小王": 78, "小李": 52, "小华": 33…...

被遗忘的女程序员沙拉:用模拟程序为互联网奠基,却因家庭放弃编程

为互联网奠基的女程序员沙拉 数学教师沙拉博姆利用暑假编写代码&#xff0c;她之后开发的东西最终演变成了互联网。作者包括凯蒂哈夫纳、萨米亚布齐德、劳拉伊森西以及科学领域被遗忘的女性倡议组织。 沙拉的编程之路 沙拉博姆从加州大学洛杉矶分校获得教学学位后&#xff0c;投…...