レポート

Docker vs. CoreOS コンテナ戦争とは何だったのか? ―Linux Foundationが「Open Source Forum 2016」でOSSプロジェクト最新状況を紹介

この記事を読むのに必要な時間:およそ 4 分

「コンテナ戦争」とコンテナ標準化

コンテナテクノロジーのトラックで続いて登壇したのが,CoreOS社チームリードであるJonathan Boulle氏です。Boulle氏は,前述のCloud Native Reference Architecture にマップされているetcdやコンテナ技術rktの開発をリードするエンジニアです。彼は,⁠The Open Container Initiative : オープンなエコシステムの標準の形成」と題して,OCIがリードするコンテナテクノロジーの標準化について紹介しました。

Jonathan Boulle氏

Jonathan Boulle氏

運用エンジニアは,⁠標準コンテナイメージを利用して,自分が開発したイメージやサードパーティ製のイメージを安全にデプロイしたり,イメージを利用するツールを選択したり,あるいはイメージを検査・監査できるようにしたいと思うだろう」と,あるべき姿を示しながら,実際どのようにコンテナテクノロジーの標準化が進んだかという歴史を紹介しました(つまり,数年前はあるべき姿ではなかったということです⁠⁠。

2013年までは,ulimit, cgroups, chroot, namesspaeなどを利用して自分用のコンテナを使うか,パワフルではあるが複雑なLXCを利用していたといいます。2013~2014年にかけて,アプリケーションコンテナの夜明けとなります。それは,使いやすく開発者にフレンドリーなDockerが登場したことによります。そして2015~2016年には,DockerだけでなくrktやFLATPAKが登場し,アプリケーションコンテナがメインストリームへと進出するようになりました。

しかし,Boulle氏は2014年ごろのDockerのイメージフォーマットには問題があったといいます。たとえば,仕様が決まっていない,content-addressableでない,MX recordsのようなName delegationがない,サイニングができないなどといった点です。

Dockerイメージフォーマットの問題点

Dockerイメージフォーマットの問題点

そこで発足したのがCoreOS社などが参加するappc(App Container)プロジェクトです。appcでは,イメージフォーマットとランタイムにフォーカスし,配布しやすいコンテナテクノロジーの標準化を目指しました。appcでの成果物として,rkt(Linux⁠⁠,Kurma(Linux⁠⁠,Jetpack(FreeBSD)のランタイム環境が開発されています。

appcとは

appcとは

2015年には,Docker社がv2.2となるイメージフォマットを定義しました。ベンダー仕様ではありますが,初めてほとんどの内容がドキュメント化されたことや,content-addressableとなったことが特徴です。しかし,依然としてName delegationがなく,サイニングについてはオプションで別個に定義されていました。つまり,一歩標準化には進んだが,appcプロジェクトの目標から見ると足りない点があるということになります。

上記のような事情もあり,2015年の段階ではコンテナテクノロジーの標準が2つに分かれていました。このappcとDocker社の争いは「コンテナ戦争」と呼ばれていました。

「コンテナ戦争」と呼ばれた標準の二分化

「コンテナ戦争」と呼ばれた標準の二分化

しかしこの状況は長くは続かず,2015年6月にコンテナイメージフォーマットおよびランタイムの標準化に向け,Docker社やappcメンバーを含む多数のコンテナ関連ベンダーが結集して,OCIが発足しました。OCIの活動は順調に進み,現在コンテナイメージフォーマットおよびランタイムの第1版のリリース候補が公開されています。今後OCIは,これらの標準に基づいてさまざまなツールやランタイム環境が提供されるようになることをゴールの1つとしています。

OCIの活動状況,2015年後半から活発な開発が続いている

OCIの活動状況,2015年後半から活発な開発が続いている

このように「コンテナ戦争」は収束しました。

Docker社もCoreOS社も日本法人が存在していないことから,⁠コンテナ戦争」については十分な情報がなく,興味のある方が翻訳されたニュースなどを追いかけていたと思います。今回,当事者から当時の経過を聞くことができて非常に勉強になりました。

協業プロジェクトを「絵に描いた餅」にしないために

今回のセミナーでは,コンテナ関係ではRobust Perception創業者あるBrian Brazil氏が,Dockerやマイクロサービスの監視で注目が高まっている監視ソフトウェアPrometheusをデモンストレーションつきで紹介しました。ZabbixやNagiosのような運用監視ソフトウェアとは違う領域で力を発揮するソフトウェアです。興味のある方はぜひ検索してみてください。

Zemlin氏は講演の最後に「今,私たちは歴史上もっとも偉大な共有されたテクノロジー資産を構築つつある」と述べました。本セミナーの翌日となる11月18日には,MicrosoftがLinux Foundationのプラチナメンバーになったことが発表されたように,あらゆる企業や団体,開発者,ユーザが参加して,テクノロジーを共有する動きはますます強まっていると思います。今回紹介したコンテナ関係のプロジェクトは誰も参加できるものです。ぜひ参加してみてはいかがでしょうか?

Zemlin氏の締めのことば

Zemlin氏の締めのことば

最後に,Zemlin氏が90年代に上智大学に留学していたことを初めて知りました。そのため,私が日本語で質問した内容を通訳なしで理解して,当日会場の日本語がわからない参加者に英語で質問内容を説明していたことには驚きました。Zemlin氏をイベントで見かけたときには,日本語で変なことを言ったりしてもわかってしまうということですね。

著者プロフィール

赤井誠(あかいまこと)

日本ヒューレット・パッカード株式会社(日本HP)に入社後,ソフトウェアR&D,事業企画,マーケティング部門を歴任。2003年からLinuxビジネス立ち上げのリーダーとなり,日本HPをLinux No.1ベンダーに導く。また,x86サーバーを活用したハイパフォーマンス・コンピューティング(HPC)を立ち上げ,HPC No.1ベンダーに導く。2011年4月 MKTインターナショナル株式会社を起業し,現職。
キャリアデベロップメントカウンセラー

著作・翻訳:
『マックで飛び込むインターネット』(翔泳社) の執筆以降,ライター活動も実施中。『リーダーにカリスマ性はいらない』,『MySQLクックブック』『JBoss (開発者ノートシリーズ) 』(オライリー・ジャパン)など多数。