全7378文字

Dockerとコンテナ標準化の歴史

 Dockerとは、コンテナの作成から実行までを担うオープンソースソフトウエア(OSS)です。Dockerは前述のLinuxカーネルの機能などを単一のツールとしてまとめることで、開発者がアプリケーションを簡単にパッケージ化してコンテナとしてデプロイしたり、実行できるようにしています。Docker登場以前から「FreeBSD Jail」や「LXC」などいくつかのコンテナ技術が存在しましたが、Dockerの登場をきっかけにしてコンテナの利用が大きく広がりました。

 ここでDockerの歴史を振り返ってみましょう。Dockerの機能を早く使いたいという方は読み飛ばしていただいても構いませんが、歴史を知ることでDockerの特徴をより深く知ることができます。

 Dockerは、当時PaaS(プラットフォーム・アズ・ア・サービス)を提供するクラウドベンダーであった米dotCloud(ドットクラウド)社によって2013年3月に最初のバージョンである0.1.0がOSSとして公開されました。Dockerは登場と同時に大きな注目を集め、結果dotCloud社は2013年10月にDocker社に社名を変更するに至りました。

 Docker登場当初は、DebianやUbuntuといった限られたLinuxディストリビューションでしか動作しませんでしたが、バージョン0.7ではRHELやSUSEなども含む全てのLinuxディストリビューションに対応しました。Dockerが登場して約1年後の2014年3月にリリースされたバージョン0.9では、それまでLinuxカーネルの機能を呼び出す際に依存してきたLXCから、独自に開発したlibcontainerドライバに切り替えることで安定性の向上を実現しました。

 2014年6月にはバージョン1.0がリリースされ、企業情報システム向けのサポートを開始しました。これにより、システムの本番環境での利用も推奨されるようになりました。

 同時にコンテナイメージを管理する「Docker Hub」が発表されました。Docker Hubによりユーザーは作成したコンテナイメージをアップロードして簡単に公開・共有できるようになりました。

 Dockerが短い期間で急速に発展する一方で、Dockerをはじめとするコンテナの運用に最適化された軽量なLinux OSが登場しました。米CoreOS(コアオーエス)社の「CoreOS」や米Red Hat(レッドハット)社の「Atomic Host」、英Canonical(カノニカル)社の「Snappy Ubuntu Core」などです。これらの登場も相まってDockerの普及がさらに進みます。

 2014年12月にはCoreOSが独自のコンテナランタイム「rkt」を公開したことにより、Dockerやrktなど複数のコンテナランタイムが林立しました。そこで、これらコンテナの標準化に向けた動きが活発化しました。