现在工作中k8s是使用containerd还是docker来管理容器?
作者:卡卷网发布时间:2025-02-24 21:26浏览数量:49次评论数量:0次
Kubernetes 里用啥工具来管容器,是用 containerd
还是 Docker
?
这种事儿,听起来好像很技术,但其实就那么回事儿,真正玩透了才明白,真没有表面看起来那么神秘。
咱就说说这个事儿,抛开那些高大上的词汇,简单直白点。给你条条道来,你就知道为啥选 containerd
才是眼下的王道了。
一、为什么这俩工具长得差不多?
咱先说个背景知识,这事儿的根子还在于,Kubernetes
这玩意儿,自己不生产容器,它就是个“调度员”,就是管你要什么容器,跑哪里,怎么跑,这些事儿。容器本身是由更底层的东西来管的。
最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软
而 Docker
和 containerd
,就是两种帮你把容器跑起来的工具。最早 Docker
算是主流,后来 containerd
上位,成了 Kubernetes 里默认的容器管理方式。
这两个工具呢,说白了,都能帮你把应用打包成容器,把代码、依赖、配置啥的都塞一块,想在哪儿跑都行。
只是,Docker
做了更多,它不仅仅管容器,还做镜像构建、注册、分发什么的。而 containerd
就精简得多,专注跑容器的核心功能。你可以理解为 Docker
是个大公司里的全能员工,啥都想干;而 containerd
就是个专注一件事的小专家,干活专心不出岔子。
最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软
二、Docker
落伍的根源在哪?
说白了,Docker
的锅有点儿多。一开始它啥都干,但 Kubernetes
真正搞起来后,发现有些事不需要它插手。
比如容器的构建和分发,用不上 Kubernetes
就能搞定;但是 Docker
自带的这些东西不仅多余,还拖慢系统。想想公司里的“全能”同事啥都管,有时候反倒不省心,是不是?
- 性能负担:
Docker
架构复杂、依赖多,在大规模场景下,额外的服务和功能就成了累赘,常常拖慢系统。就像你把一个公司所有职能都给一个人,这人反倒越干越慢,还常出小毛病。
- 兼容性不足:
Docker
的架构不符合 Kubernetes CRI(容器运行时接口)的规范,需要一层转接,叫dockershim
。多一个环节就多一份不稳定的风险,出点问题谁都搞不清锅在哪儿。换个精简专注的containerd
,直接上 CRI,少了中间商,省心多了。
- 复杂架构:
Docker
的架构里带了很多没用的东西,举个例子,自己带了个 Docker Engine 和 Docker Daemon,就像一个人带个小助理,干活是方便了,但也有点拖沓。咱不如直接让containerd
这个大力士上,直接扛活儿干。
- Kubernetes 直呼“去掉
dockershim
”:2021 年 Kubernetes 就宣布正式抛弃Docker
支持了,原因很简单,大家都嫌麻烦,尤其是多出来的dockershim
维护成本高,风险大。既然有更好的选择,谁还拿着“扶不起的阿斗”?
三、那 containerd
有啥独门绝技?
好嘞,containerd
出场了。这个家伙清晰明了,就是个硬派选手。它干活就干“运行容器”这一件事,不掺和别的,省心省事儿。来看几个它独有的好处:
- 体积小,速度快:不多说了,
containerd
不像Docker
那么复杂,你也不用花额外心思去理解各种多余的东西。专注就是力量,咱玩 Kubernetes 就是要这个小、快、专注的工具,别整那些花里胡哨的。
- 架构简洁:
containerd
和 Kubernetes 打交道的接口天然契合,没啥中间层,直接干活就完事儿。容器调度上,少一环,稳定性就上来。再说,简洁的东西维护起来也省心,不会今天冒泡明天掉线。
- 维护方便,社区活跃:虽然
containerd
看着小,但人家是 CNCF(云原生计算基金会)亲自罩的,不会没人管。Kubernetes 里一出啥问题,容器底层的社区老铁马上就给你支援,不怕没解决方案。咱们用它,也更省心。
四、现实工作中的利弊权衡
好了,咱说点实际工作中的情况吧。用 containerd
一开始可能不太习惯,尤其你要是以前 Docker 用得很熟。但公司里啥活不是从学不会到学会,containerd
这玩意儿上手成本其实也没那么高。
- 开发、测试的环境:
Docker
环境用惯了,你本地开发、打包镜像还是得靠它。但是上了生产环境,部署到集群里,就用containerd
,两者配合着用,各司其职,这样效率最高。
- 从 Docker 转 containerd 的迁移成本:对,迁移成本有一些,但这就跟升级设备一样,忍一忍,等习惯了就好。这事儿吧,长痛不如短痛,公司总要向前走。切了
containerd
,你会发现架构稳定性提升不止一点半点。
- 容器镜像管理:
containerd
没有内置的镜像构建和分发功能,但这事儿也不难解决,反正公司内部用一些专门的镜像库(Registry),照样方便得很。大公司还会用 CI/CD 工具链串起来,哪里还用纠结这个。
五、总结一句话
真要总结的话,就是这事儿早就没啥悬念了:Docker
好用在开发阶段,本地折腾项目谁都爱它;可真上生产,containerd
必须安排。干活儿嘛,就要用对的工具,containerd
精简稳定,省去 Docker 的各种麻烦和复杂性。咱就别纠结了,生产上用 Kubernetes 那就直接 containerd
,少走弯路。
免费看 500 套技术教程的网站,希望对你有帮助
程序员快看-教程,程序员编程资料站最近无意间获得一份阿里大佬写的刷题笔记,一下子打通了我的任督二脉,进大厂原来没那么难。这是大佬写的,7701页的BAT大佬写的刷题笔记,让我offer拿到手软
求一键三连:点赞、分享、收藏
我的技术网站:cxykk.com 里面有,500套技术系列教程、1万+道,面试八股文、BAT面试真题、简历模版,工作经验分享、架构师成长之路,全部免费,欢迎收藏和转发。
说在最后
最后再推荐一些免费的K8s专栏教程,希望能帮到你
K8S实战
01、K8s实战:Windows10安装Docker,配置阿里云加速器
02、K8s实战:基础知识之简介
03、K8s实战:基础知识之组件
04、K8s实战:Centos7.6yum安装Docker,配置阿里云加速器
05、K8s实战:Centos7.6安装dockercompose
06、K8s实战:Centos7.6使用Ansible安装K8S(测试单节点)
07、K8s实战:Dockercompose安装中文版GitLab,配置SSH免密登录
08、K8s实战:Centos7.6安装私服Harbor
09、K8s实战:SpringBoot使用jib打包Docker镜像至私服
10、K8s实战:dockercompose之网络设置
11、K8s实战:使用开源项目io.fabric8之docker
12、K8s实战:二进制方式搭建K8S集群(环境准备)
13、K8s实战:二进制方式搭建K8S集群(完结)
14、K8s实战:K8S管理平台Rancher安装及集群导入
15、K8s实战:陈述式管理之kubectl常用命令
16、K8s实战:声明式管理示例之K8S部署Nginx及修改删除
17、K8s实战:K8S存储Volume之ConfigMap
18、K8s实战:K8S存储Volume之Secret
19、K8s实战:K8S存储之emptyDir+hostPath
20、K8s实战:K8S存储之NFSPVPVC
21、K8s实战:K8S控制器之ReplicaSet
22、K8s实战:K8S控制器之Deployment
23、K8s实战:K8S控制器之DaemonSet
24、K8s实战:K8S控制器之JobCronJob
25、K8s实战:K8S之Service
26、K8s实战:K8S之Ingress
27、K8s实战:K8S之Schedule
28、K8s实战:K8S之Helm安装与配置
29、K8s实战:K8S之部署微服务项目实战
Docker实战
01、Docker 基础教程
02、Docker 架构
03、Ubuntu 安装 Docker
04、CentOS Docker 安装
05、Windows 安装 Docker
06、Docker run 运行镜像
07、Docker 容器
08、Docker top 查看容器进程
09、Docker inspect 容器元数据
10、Docker start 启动容器
11、Docker restart 重启容器
12、Docker rm 删除已停止的容器
13、Docker 命名容器
14、Docker 容器运行 Web 应用
15、Docker 端口映射
16、Docker images 本地镜像列表
17、Docker 查找镜像
18、Docker commit 更新镜像
19、Docker Dockerfile 创建镜像
20、Docker build 构建镜像
21、Docker 镜像打标签
22、Docker 部署 Nginx 环境
23、Docker 部署 PHP 环境
24、Docker 安装 MySQL
25、Docker 安装 Tomcat
26、Docker 安装 Python
27、Docker 安装 Redis
28、Docker 安装 MongoDB
29、Docker 安装 Apache
30、Docker 命令大全
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:有哪些好玩到爆的小网站?
- 下一篇:怎么看待一些APP不更新就不能使用?
相关推荐

你 发表评论:
欢迎