開閉ボタン
ユーザーメニュー
ユーザーメニューコンテンツ
ログイン

  • 会員限定
  • 2017/12/14

Dockerの歴史から紐解く、コンテナ型仮想化の「今まで」と「これから」

この記事では、Docker登場から現在までを振り返り、その次の段階を展望します。

Publickey 新野淳一

Publickey 新野淳一

ITジャーナリスト/Publickeyブロガー。大学でUNIXを学び、株式会社アスキーに入社。データベースのテクニカルサポート、月刊アスキーNT編集部 副編集長などを経て1998年退社、フリーランスライターに。2000年、株式会社アットマーク・アイティ設立に参画、オンラインメディア部門の役員として2007年にIPOを実現、2008年に退社。再びフリーランスとして独立し、2009年にブログメディアPublickeyを開始。現在に至る。

photo

 コンテナ型仮想化の技術や実装はDockerが登場する以前から存在していたとはいえ、IT業界で本格的にコンテナの活用が始まったと言えるのは、やはり2013年3月に当時のdotCloudからDockerが登場したことがきっかけでしょう。

 そうした始まったコンテナ時代の第一章は今年2017年、コンテナの標準仕様がOpen Container Initiativeによって策定完了し、コンテナオーケストレーションの事実上の標準がKubernetesに決まったことで、基盤技術の基本要素がおおむね固まり、第一章としての区切りがついたように見えます。

 そして今後は、この基盤技術を用いたコンテナによる分散アプリケーションのための様々なサービスや開発、テスト、デプロイ、本番環境に対応したツールやサービス実行環境などのソリューションが登場し、競う段階へ入っていくのではないでしょうか。

 この記事では、Docker登場から現在までを振り返り、その次の段階を展望します。

2013年、Docker登場

 Dockerが登場したのは2013年3月26日のことでした。

・Dockerリリース
 2010年に創業し2011年からPaaSを提供するクラウドベンダーだったdotCloudが3月、オープンソースのソフトウェアとして公開しました。


・dotCloudからDockerへ
 そのDockerは登場当初から急速に注目されるようになり、その結果dotCloud社は社名をDockerに変更し、Dockerを同社のビジネスとして立ち上げるという大胆な発表を行います。


photo
about Docker - Docker Inc.」から引用

・Docker 0.7
 2013年11月に登場したDocker 0.7で、Ubuntuなど一部のLinuxでしか利用できなかったDockerが、RHEL、SUSE、DebianなどすべてのLinuxディストリビューションに対応します。

2014年、Googleは毎週20億のコンテナを起動していた

 2014年は、コンテナがIT業界の大きなトレンドとして認識された年でした。

・Docker 0.9
 2014年3月にリリースされたDocker 0.9では、それまで依存していたLXCから独自に実装したlibcontainerへ切り替えることで安定性が向上。

 2014年4月には、Red HatがDocker専用の軽量OS「Red Hat Enterprise Linux Atomic Host」を発表。Dockerはニッチではなくメインストリームの技術であるという認識が広まり、日本でもDocker Meetupなどのイベントが開催されるようになりました。


・Googleはすべてをコンテナ化していた
 こうしてコンテナへの注目度が国内外で高まる中、Googleはすでに全部のソフトウェアをコンテナ化しており、毎週20億個ものコンテナを起動していると発表し、多くのエンジニアを驚かせました。

photo

・Docker 1.0リリース
 6月10日は早くもDocker 1.0が登場。同時にDockerイメージを管理するDocker Hubが発表されました。


・Google、Kubernetes発表
 その同じ6月10日、GoogleはKubernetesをオープンソースとして公開することを発表します。


・VMware、マイクロソフトが相次いでDockerと協業発表
 8月にはVMwareがDockerとの協業を発表。10月にはマイクロソフトもDockerと提携し、Windows ServerでDocker採用と発表

 そして同じ頃、DockerはdotCloudのビジネスをcontrolCloudに売却し、Dockerビジネスに専念することを表明。

・Docker Swarm
 12月にはDockerが独自のコンテナオーケストレーションツールのDocker Swarmを発表します。

2015年、コンテナ仕様は標準化へ

・Open Container Initiativeスタート
 コンテナ実装のあり方についてやり合っていたDockerとCoreOSが、6月にマイクロソフト、Google、Red Hat、VMware、Amazon Web Servicesらと共同でコンテナの標準化団体「Open Container Initiative」(発表時の名称はOpen Container Project」の発足を発表。それまでDockerやCoreOSなどそれぞれのベンダが独自に実装していたコンテナが、一気に標準化へ舵を切ります。


photo

・Cloud Native Computing Foundation設立
 7月、それまでGoogleが主導してオープンソースの実装を進めてきたKubernetesも、バージョン1.0に達すると同時に、ベンダから独立した団体である「Cloud Native Computing Foundation」を設立。開発主体がこの団体へ移動します。


 8月にはDockerと提携したマイクロソフトが、Dockerを搭載したWindows Server 2016 Technical Preview 3を公開。9月にはVmwareがvSphereにコンテナエンジンを統合した「vSphere Integrated Containers」を発表します。

2016年、Swarm対Kubernetes

・Docker for Mac/Windows登場
 3月にはVirtualBoxなどが不要でOSネイティブの仮想化を用いた「Docker for Mac/Windows」が登場

・DockerにSwarmバンドルを発表
 6月におこなわれたDockerCon 16では、Dockerにコンテナオーケストレーション機能のDocker Swarmを内蔵することを発表。このあたりから、SwarmとKubernetesを軸としたコンテナオーケストレーションツールの主導権争いが表面化してきます。


 8月には発表通り、Docker Swarmを内蔵した「Docker 1.12」が登場

・Kubernetesが独自コンテナランタイム開発を表明
 Kubernetes側は当然のことながら、こうしたDockerの動きを歓迎しませんでした。10月には、Kubernetesの開発陣が独自のコンテナランタイム「cri-o」を開発中であることを表明します。


・Dockerからcontainerdが分離
 これをDocker側が警戒したのかどうかは不明ですが、12月にはDockerエンジンのコアランタイムを「containerd」として分離、独立したオープンソースプロジェクトとなります

 また、11月には日本人としては初めてのDockerメンテナとして、NTTの須田氏が就任しました

2017年、Kubernetesが事実上の標準に

 そして今年、コンテナオーケストレーションツールをめぐる状況は大きく動きました。

・Kubernetes優勢の状況へ
 2月、CoreOSはKubernetesがコンテナオーケストレーションツールのデファクトになったとし、自社で開発していたオーケストレーションツール「fleet」の開発終了を発表します。


 この頃から、Kubernetesがコンテナオーケストレーションツールとして頭一つ抜け出した状況が見え始めます。

・Kubernetes 1.6登場
 3月に登場したKubernetes 1.6は、etcd3とgRPCを採用したことで大幅に性能向上。さらに名前空間の分離や物理ノードの考慮などの機能向上も果たしました

・Moby Project発表
 4月、DockerCon 2017でDockerはMoby Projectを発表します。Moby Projectはさまざまなコンテナ関連のソフトウェアをコンポーネント化することで、目的ごとに特化したコンテナシステムを作ることができるフレームワークです。


photo

 6月にはオラクルもKubernetesへの注力を発表

・コンテナ標準のOCI 1.0発表
 7月にはついにOpen Container Initiativeによるコンテナランタイムとコンテナイメージの標準化作業が完了し、「OCI 1.0」として発表されます

 7月、8月、9月と相次いでマイクロソフト、AWS、VMware、オラクルがKubernetesの開発をホストするCloud Native Computing Foundationへの加盟を発表。状況はKubernetesへ一気に傾き始めました。

・DockerがKubernetesの統合を発表
 そして10月に開催されたDockerCon Europe 2017で、DockerはついにKubernetesの統合とサポートを発表しました。コンテナオーケストレーションの事実上の標準がKubernetesになったと言えます。


photo

・主要クラウドもKubernetesマネージドサービス提供
 10月にはMicrosoft AzureがKubernetesのマネージドサービス「Azure Container Service」(AKS)を発表。Google Cloudはこれまで提供してきたKubernetesベースのGoogle Container Engineを「Google Kubernetes Engine」(略称GKEはそのまま)にサービス名を変更。そして11月にはAWSも「Amazon Elastic Kubernetes Service」(Amazon EKS)を発表しました

・Kubernetesのコンテナランタイム「cri-o 1.0」リリース
 Kubernetesが独自に開発を進めていたコンテナランタイムのcri-oも1.0に到達。コンテナランタイムとKubernetesのあいだのAPIも「CRI」(Kubernetes Container Runtime Interface)となりました。

 これによってコンテナランタイムとコンテナイメージの標準は「OCI」、コンテナランタイムとKubernetesとの間のAPIは「CRI」として標準化されたことになります。

【次ページ】 今後何が起きるのか? 2018年はコンテナによるソリューションのフェーズへ

仮想化ソフトウェア ジャンルのセミナー

仮想化ソフトウェア ジャンルのトピックス

仮想化ソフトウェア ジャンルのIT導入支援情報

PR

ビジネス+IT 会員登録で、会員限定コンテンツやメルマガを購読可能、スペシャルセミナーにもご招待!