<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Containerd on 断念梦的站点</title><link>https://desistdaydream.github.io/tags/containerd/</link><description>Recent content in Containerd on 断念梦的站点</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://desistdaydream.github.io/tags/containerd/index.xml" rel="self" type="application/rss+xml"/><item><title>Containerization implementation</title><link>https://desistdaydream.github.io/docs/10.%E4%BA%91%E5%8E%9F%E7%94%9F/Containerization-implementation/Containerization-implementation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://desistdaydream.github.io/docs/10.%E4%BA%91%E5%8E%9F%E7%94%9F/Containerization-implementation/Containerization-implementation/</guid><description>&lt;h1 id="概述"&gt;概述&lt;a class="td-heading-self-link" href="#%e6%a6%82%e8%bf%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h1 id="oci-runtime-规范的实现"&gt;OCI Runtime 规范的实现&lt;a class="td-heading-self-link" href="#oci-runtime-%e8%a7%84%e8%8c%83%e7%9a%84%e5%ae%9e%e7%8e%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://mp.weixin.qq.com/s/NPxLLhRkpNdTgVcKQSLcFA"&gt;公众号-k8s 技术圈，Containerd 深度剖析-runtime 篇&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;当人们想到容器运行时，可能会想到一连串的相关概念；runc、runv、lxc、lmctfy、Docker（containerd）、rkt、cri-o。每一个都是基于不同的场景而实现的，均实现了不同的功能。如 containerd 和 cri-o，实际均可使用 runc 来运行容器，但其实现了如镜像管理、容器 API 等功能，可以将这些看作是比 runc 具备的更高级的功能。&lt;/p&gt;
&lt;p&gt;可以发现，容器运行时是相当复杂的。每个运行时都涵盖了从低级到高级的不同部分，如下图所示&lt;/p&gt;
&lt;p&gt;&lt;img src="https://notes-learning.oss-cn-beijing.aliyuncs.com/ctvy4o/1653965809357-01c7d7f1-81d0-49f1-beaa-15bd63e7acd6.png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;根据功能范围划分，将其分为 &lt;strong&gt;Low level Container Runtime(低级容器运行时)&lt;/strong&gt; 和 &lt;strong&gt;High level Container Runtime(高级容器运行时)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;低级容器运行时 # 只关注容器的本身运行&lt;/li&gt;
&lt;li&gt;高级容器运行时 # 支持更多高级功能的运行时，如镜像管理及一些 gRPC/Web APIs，通常被称为&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;需要注意的是，低级运行时和高级运行时有本质区别，各自解决的问题也不同。&lt;/p&gt;
&lt;h1 id="低级运行时"&gt;低级运行时&lt;a class="td-heading-self-link" href="#%e4%bd%8e%e7%ba%a7%e8%bf%90%e8%a1%8c%e6%97%b6" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;低级运行时的功能有限，通常执行运行容器的低级任务。大多数开发者日常工作中不会使用到。其一般指按照 OCI 规范、能够接收可运行 roofs 文件系统和配置文件并运行隔离进程的实现。这种运行时只负责将进程运行在相对隔离的资源空间里，不提供存储实现和网络实现。但是其他实现可以在系统中预设好相关资源，低级容器运行时可通过 config.json 声明加载对应资源。低级运行时的特点是底层、轻量，限制也很一目了然：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;只认识 rootfs 和 config.json，没有其他镜像能力&lt;/li&gt;
&lt;li&gt;不提供网络实现&lt;/li&gt;
&lt;li&gt;不提供持久实现&lt;/li&gt;
&lt;li&gt;无法跨平台等&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="lxc"&gt;LXC&lt;a class="td-heading-self-link" href="#lxc" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/lxc/lxc"&gt;GitHub 项目，lxc/lxc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://desistdaydream.github.io/docs/10.%E4%BA%91%E5%8E%9F%E7%94%9F/Containerization-implementation/Docker/Docker/"&gt;Docker&lt;/a&gt; 早期使用了 LXC 实现，后来不满足需求，自己开发了 libcontainer 代替 LXC&lt;/p&gt;</description></item></channel></rss>