https://mp.weixin.qq.com/s/DhLmd9tv88-Vbk6dwx3umg

https://fuckcloudnative.io/posts/getting-started-with-containerd/

https://fuckcloudnative.io/

目录

1. Containerd 的前世今生

2. Containerd 架构

3. Containerd 安装

安装依赖

下载并解压 Containerd 程序

生成配置文件

镜像加速

存储配置

OOM

Systemd 配置

4. ctr 使用

镜像

容器

任务

命名空间

Containerd + Docker


1. Containerd 的前世今生


很久以前,Docker 强势崛起,以“镜像”这个大招席卷全球,对其他容器技术进行致命的降维打击,使其毫无招架之力,就连 Google 也不例外。Google 为了不被拍死在沙滩上,被迫拉下脸面(当然,跪舔是不可能的),希望 Docker 公司和自己联合推进一个开源的容器运行时作为 Docker 的核心依赖,不然就走着瞧。Docker 公司觉得自己的智商被侮辱了,走着瞧就走着瞧,谁怕谁啊!

很明显,Docker 公司的这个决策断送了自己的大好前程,造成了今天的悲剧。

紧接着,Google 联合 Red Hat、IBM 等几位巨佬连哄带骗忽悠 Docker 公司将 libcontainer 捐给中立的社区(OCI,Open Container Intiative),并改名为 runc,不留一点 Docker 公司的痕迹~~

这还不够,为了彻底扭转 Docker 一家独大的局面,几位大佬又合伙成立了一个基金会叫 CNCF(Cloud Native Computing Fundation),这个名字想必大家都很熟了,我就不详细介绍了。CNCF 的目标很明确,既然在当前的维度上干不过 Docker,干脆往上爬,升级到大规模容器编排的维度,以此来击败 Docker。

Docker 公司当然不甘示弱,搬出了 Swarm 和 Kubernetes 进行 PK,最后的结局大家都知道了,Swarm 战败。然后 Docker 公司耍了个小聪明,将自己的核心依赖 Containerd 捐给了 CNCF,以此来标榜 Docker 是一个 PaaS 平台。

很明显,这个小聪明又大大加速了自己的灭亡。

巨佬们心想,想当初想和你合作搞个中立的核心运行时,你死要面子活受罪,就是不同意,好家伙,现在自己搞了一个,还捐出来了,发生甚莫事了?

这好吗?

这不好

也罢,这倒省事了,我就直接拿 Containerd 来做文章吧。

首先呢,为了表示 Kubernetes 的中立性,当然要搞个标准化的容器运行时接口,只要适配了这个接口的容器运行时,都可以和我一起玩耍哦,第一个支持这个接口的当然就是 Containerd 啦。至于这个接口的名字,大家应该都知道了,它叫 CRI(Container Runntime Interface)。

这样还不行,为了蛊惑 Docker 公司,Kubernetes 暂时先委屈自己,专门在自己的组件中集成了一个 shim(你可以理解为垫片),用来将 CRI 的调用翻译成 Docker 的 API,让 Docker 也能和自己愉快地玩耍,温水煮青蛙,养肥了再杀。。。

就这样,Kubernetes 一边假装和 Docker 愉快玩耍,一边背地里不断优化 Containerd 的健壮性以及和 CRI 对接的丝滑性。现在 Containerd 的翅膀已经完全硬了,是时候卸下我的伪装,和 Docker say bye bye 了。后面的事情大家也都知道了~~

Docker 这门技术成功了,Docker 这个公司却失败了。

2. Containerd 架构


时至今日,Containerd 已经变成一个工业级的容器运行时了,连口号都有了:超简单!超健壮!可移植性超强!

当然,为了让 Docker 以为自己不会抢饭碗,Containerd 声称自己的设计目的主要是为了嵌入到一个更大的系统中(暗指 Kubernetes),而不是直接由开发人员或终端用户使用。

事实上呢,Containerd 现在基本上啥都能干了,开发人员或者终端用户可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储、容器的执行和管理、存储和网络等。大家可以考虑学起来了。

学习 Containerd 最好的时机是关注公众号 云原生实验室 后,其次是现在,看完了再关注公众号也不迟

Containerd 的前世今生和级入门教程相关推荐

  1. Containerd 的前世今生和保姆级入门教程

    1. Containerd 的前世今生 很久以前,Docker 强势崛起,以"镜像"这个大招席卷全球,对其他容器技术进行致命的降维打击,使其毫无招架之力,就连 Google 也不例 ...

  2. 深度学习保姆级入门教程 -- 论文+代码+常用工具

    导读 该篇文章可以看作是我研一如何入门深度学习的一个大总结,本人本科专业为软件工程,硕士期间研究方向为基于深度学习的图像分割,跨度相对而言不算太大.如果你对如何入门深度学习还很迷茫的话,那么请看下去吧 ...

  3. 微服务网关:SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  4. 什么是微服务网关?SpringCloud Gateway保姆级入门教程

    什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ...

  5. Python基础教程,Python神仙级入门教程(非常详细)

    Python 是一门开源免费.通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」. Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 Web 开发.PC ...

  6. idea没有out文件夹_史上最详细没有之一的 Java JNI傻瓜级入门教程

    本文使用java的IDEA和visual studio2017来详细的一步一步演示java的JNI构建过程(eclipse+vs2017的教程在文末) 1.打开java的IDEA,file->n ...

  7. 【机器学习】机器学习神器Scikit-Learn保姆级入门教程

    公众号:尤而小屋 作者:Peter 编辑:Peter Scikit-learn是一个非常知名的Python机器学习库,它广泛地用于统计分析和机器学习建模等数据科学领域. 建模无敌:用户通过scikit ...

  8. ElasticSearch保姆级入门教程

    文章目录 一.初识ElasticSearch 二.安装Elasticsearch 2.1 创建网络 2.2 下载资源/加载镜像 2.3 运行 2.4 部署kibana 2.4.1 部署 2.5 安装I ...

  9. PyTorch 分布式框架 Ray :保姆级入门教程

    来源:官方博客 翻译:PyTorch 开发者社区(微信公众号) 今天的机器学习需要分布式计算.无论是训练网络.调整超参数.服务模型还是处理数据,机器学习都是计算密集型的,如果没有访问集群,速度会非常慢 ...

最新文章

  1. 2022-2028年中国即时通讯市场投资分析及前景预测报告
  2. 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约
  3. linux c 内存elf,gcc加入linux ELF有什么功能?
  4. 如何提高网页中图片显示的用户体验(附源码下载)
  5. 【DKN】(六)KCNN.py
  6. 二极管的结构、特性、参数、稳压管的特性和参数
  7. vue-cli3.x中使用axios发送请求,配合webpack中的devServer编写本地mock数据接口(get/post/put/delete)...
  8. 面试题:a==1 a==2 a==3 是 true 还是 false?
  9. php往pdf模板添加数据,php实现往pdf中加数字签名操作示例【附源码下载】
  10. 【数据分析实例】 2021年十万条厦门招聘数据分析
  11. android发送短信的两种方式,发送长短信的两种方式,群发短信
  12. 【完全指南】如何在Github上使用Hexo搭建自己的Blog
  13. 重新渲染echarts图形
  14. 工作了,才知道......
  15. 冒泡排序python和C语言
  16. python123九宫格输入_python制作朋友圈九宫格图片
  17. Java设计模式七大原则-开闭原则
  18. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全
  19. python中的numpy库有什么优缺点_python中关于numpy库的介绍
  20. bytebuffer长度_ByteBuffer常用方法详解

热门文章

  1. 2021高考成绩怎么查询时间北京,2021年北京高考成绩几号公布可以查询,查询时间安排...
  2. CentOS 7下彻底卸载MySQL数据库
  3. MySQL—FTS实现原理介绍PPT
  4. Javascript 之《函数传参到底是值传递还是引用传递》
  5. UVA 1349 Optimal Bus Route Design (二分图最小权完美匹配)
  6. 虚拟机服务器拒绝密码,Xshell连接不上虚拟机连接提示SSH服务器拒绝了密码,请再试一次...
  7. java char占用多少字节_Java虚拟机:Java对象大小、对象内存布局及锁状态变化
  8. python读取python源代码文件_python 学习源码练习(2)——简单文件读取
  9. 苹果hdmi没有声音怎么办_HDMI线连接到电视后没有信号怎么办?给你7个方法,常见但很实用...
  10. mysql索引的概念和作用_索引的基本概念及作用