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

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

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

相关文章

Linux 三十六章

​​​​​​​ &#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要…

ORACLE 资源管理参数与等待事件resmgr:cpu quantum

RESOURCE_MANAGER_PLAN 先来看下参数的含义 官网链接&#xff1a;RESOURCE_MANAGER_PLAN (oracle.com) 意思翻译过来这个参数用于资源计划。后边的看完也不是很明白具体的作用 于是参考了以下文章 Oracle 参数 RESOURCE_MANAGER_PLAN 官方解释&#xff0c;作用&#xff0c;…

人从胚胎开始就要交税,直到死亡,是这样吗?

文章目录 梗概税收的基本概念从胚胎到死亡的税收分析胚胎到出生出生到成年成年到死亡 总结 梗概 人从胚胎阶段开始交税直到死亡&#xff0c;这个观点听起来有些戏剧化&#xff0c;但如果我们广义地理解“交税”这个概念&#xff0c;可以从不同的角度进行探讨。实际上&#xff…

ts中的class类

class Animal {constructor(public name: string) {}move(distance: number) {console.log(${this.name} moved ${distance} meters.);} } //这个输出如何输出 这段代码定义了一个名为 Animal 的类&#xff0c;它具有一个构造函数和一个 move 方法。构造函数使用 TypeScript 中…

Steam致富:玩免费游戏Banana获得可交易道具

最近&#xff0c;Steam平台上一款普普通通的免费游戏《Banana》引起了轰动&#xff0c;接近2万人同时在线&#xff0c;好评率高达94&#xff05;&#xff0c;究竟是什么让这款游戏如此受欢迎呢&#xff1f;原来&#xff0c;玩家们都在争相获取稀有的香蕉。 《Banana》属于点击放…

C++初阶学习第十弹——探索STL奥秘(五)——深入讲解vector的迭代器失效问题

vector&#xff08;上&#xff09;&#xff1a;C初阶学习第八弹——探索STL奥秘&#xff08;三&#xff09;——深入刨析vector的使用-CSDN博客 vector&#xff08;中&#xff09;&#xff1a;C初阶学习第九弹——探索STL奥秘&#xff08;四&#xff09;——vector的深层挖掘和…

高通WLAN框架学习(3)- -WLAN FTM 模式(补充)

前提概要: 看过之前那篇文章的都知道FTM的启动模式 高通WLAN框架学习(3)- -WLAN FTM 模式_wifi ftm-CSDN博客 但是目前现在高通主要是通过ptt_socket_app模式启动FTM的 类容介绍如下: 2.2.1 启动 WLAN FTM 在使用任何3种方法进入FTM前,用单板GUI关掉设置菜单里的WI-F…

反序列化漏洞(JBoss、apache log4、apache Shiro、JWT)Weblogic未授权访问、代码执行、任意上传

1.1什么是反序列化 就是把一个对象变成可以传输的字符串&#xff0c;目的就是为了方便传输。假设&#xff0c;我们写了一个class&#xff0c;这个class里面存有一些变量。当这个class被实例化了之后&#xff0c;在使用过程中里面的一些变量值发生了改变。以后在某些时候还会用到…

基于jpcap实现的网络嗅探器

项目功能 基于jpcap实现的网络嗅探器,项目主要主要功能为网络抓包&#xff0c;可以抓取5层协议的数据包&#xff0c;包括TCP、UDP、ICMP、IP、ARP等常见协议&#xff0c; 并支持按照协议、源IP、目的IP或关键字对抓取的包筛选。项目另外实现了基于Java Swing的GUI&#xff0c;…

AI--向量的存储和检索

step1 Document LangChain 实现了Document抽象&#xff0c;旨在表示文本单元和相关元数据。它具有两个属性&#xff1a; page_content&#xff1a;代表内容的字符串&#xff1b;metadata&#xff1a;包含任意元数据的字典。 该metadata属性可以捕获有关文档来源、其与其他文…

pl/sql基础语法操作

oracle pl/sql语言&#xff08;procedural language/sql&#xff09;是结合了结构化查询与oracle自身过程控制为一体的强大语言。 语法执行块 语法结构&#xff1a; [ declare 可选 声明变量部分--declaration statements (1);]begin --执行部分--executable statements (2)…

CentOS-9配置静态IP地址

查看配置命令nmcli CentOS 9 使用 nmcli 命令行工具进行网络配置。以下是配置静态 IP 地址的步骤和示例代码&#xff1a;相对以前centos7之类的&#xff0c;9版本的默认的网络是NetworkManager&#xff0c;网络配置也有较大改变 nmcli con show用vim进行编辑配文件 cd /etc/…

SSL证书有效期缩短有影响吗?

SSL证书是一种用于加密网络通信的安全协议&#xff0c;它可以确保用户在访问网站时&#xff0c;数据传输过程中不会被第三方恶意窃取或篡改。SSL证书通常都有一个有效期限&#xff0c;该期限可以长达几年。然而&#xff0c;最近一些SSL证书颁发机构开始缩短证书的有效期限&…

JavaScript基础(九)

冒泡排序 用例子比较好理解: var arry[7,2,6,3,4,1,8]; //拿出第一位数7和后面依次比较&#xff0c;遇到大的8就换位&#xff0c;8再与后面依次比较&#xff0c;没有能和8换位的数&#xff0c;再从下一位2依次与下面的数比较。 console.log(排列之前&#xff1a;arry); for (…

AWS迁移与传输之SCT

AWS Schema Conversion Tool&#xff08;AWS SCT&#xff09;是一款用于数据库迁移的工具&#xff0c;旨在帮助用户将现有的数据库模式&#xff08;包括表、视图、存储过程等&#xff09;从一个数据库引擎转换到另一个数据库引擎。 AWS提供两种模式转换解决方案&#xff0c;使…

开源大模型与闭源大模型:技术哲学的较量

目录 前言一、 开源大模型的优势1. 社区支持与合作1.1 全球协作网络1.2 快速迭代与创新1.3 共享最佳实践 2. 透明性与可信赖性2.1 审计与验证2.2 减少偏见与错误2.3 安全性提升 3. 低成本与易访问性3.1 降低研发成本3.2 易于定制化3.3 教育资源丰富 4. 促进标准化5. 推动技术进…

Web测试面试题(二)

一&#xff1a;简述HTTP协议的状态码包含哪些&#xff1f; 2XX&#xff0c;表示成功 3XX&#xff0c;表示重定向 4XX&#xff0c;表示客户端错误 5XX&#xff0c;表示服务器错误 二&#xff1a;HTTP和HTTPS的区别&#xff1f; 《1》安全性上的区别&#xff1a; HTTPS&#x…

AWS 信息资料

EKS 组件信息&#xff1a;Amazon EKS 附加组件 - Amazon EKS&#xff0c;主要用于程序管理插件。 AWS 区域和可用区信息&#xff1a;全球基础设施区域和可用区 如何解决创建 Amazon S3 桶时出现的错误:如何解决创建 Amazon S3 桶时出现的错误 创建 AWS EC2 实例时 userdata使…

LeetCode题解:9. 回文数,翻转一半数字,JavaScript,详细注释

原题链接 9. 回文数 解题思路 翻转数字 利用循环&#xff0c;每次将x右移一位将移出的数字存储到reversed的个位中每次存储前&#xff0c;需要将reversed左移一位 判断结果 当原x的长度为偶数&#xff0c;翻转后的结果相等当原x的长度为奇数&#xff0c;reversed一定比翻转后…

自养号测评是什么?亚马逊产品评价的全新策略

1、什么是亚马逊测评&#xff1a; 亚马逊测评&#xff0c;简而言之&#xff0c;是基于亚马逊购物平台的一种特定活动。他的核心在于模拟国外消费者的购物行为&#xff0c;并在完成购买后&#xff0c;对所获得的产品进行真实、中肯的评价。这种测评不仅为消费者提供了购物参考&…