Skip to content

歴史

起源

containerd は 2014 年に Docker 社内で、Docker engine の下に位置するランタイムマネージャとして誕生した。役割は、実際にコンテナを動かす runc プロセス群を管理することだった。これは 2015 年に Docker の libcontainer が OCI のリファレンスランタイム runc になった流れに連なる。containerd は runc を駆動し、稼働中コンテナを追跡する層になった (ADOPTERS.mdCNCF graduation 発表)。

Docker 1.11 は containerd を engine の中核ランタイムとして統合した。これ以降、docker run はコンテナのライフサイクルを containerd に委譲し、containerd が runc を呼んでカーネルを叩く構成になった (Docker ブログDataCamp)。

年表

マイルストーン
2014Docker 社内で engine の下回りのランタイムマネージャとして誕生
2016Docker 1.11 に runc を駆動する中核ランタイムとして統合
20172017-03-29 に CNCF へ Incubating プロジェクトとして寄贈
20171.0 リリース: 安定 API、CRI プラグインを内蔵化
20192019-02-28 に CNCF を卒業、5 番目の卒業プロジェクト
2024+2.x 系: module path が /v2 に、sandbox API・CRI の整理
20262.3 系が現行。pin コミット e96fd14b82.3.0+unknown を報告

どう進化したか

Docker は containerd を独立プロジェクトとして切り出し、2017 年 3 月に CNCF へ寄贈した。ここでは Incubating として受理された (graduation 発表)。同年の 1.0 リリースで公開 API が定まり、CRI プラグインが内蔵化された。これにより Kubernetes は Docker を介さず containerd を直接使えるようになった。

2.0 系では Go の module path が github.com/containerd/containerd/v2 に移り、ランタイムが再編された。pod 形式の隔離向けに sandbox API も拡充された。コードベースは core/ のドメインロジックと plugins/ のプラグイン配線を分離しており、この構造は pin コミットで確認できる。

現在地

containerd は 2.x 系の CNCF 卒業プロジェクトである。pin コミット e96fd14b8v2.3.0 近傍にあり、2.3 リリースブランチは v2.3.2 を出している。卒業時点で CNCF は committer 14 名、commit 4,406、contributor 166 名を報告し、参加企業に Alibaba、Cruise Automation、Docker、Facebook、Google、Huawei、IBM、Microsoft、NTT、Tesla が挙がる (graduation 発表)。CNCF プロジェクトページは継続的な成長と "Excellent" の健全性スコアを報告している (CNCF プロジェクトページ)。