コンテナの歴史
はじまり:1979年
コンテナの歴史のはじまりは、1979年にchrootが誕生したことがきっかけです。
chrootとは、change rootの略であり、ルートディレクトリを変えることができる操作のこと。
その目的は、セキュリティ強化のためであり、、ルートディレクトリを変更すると、その配下にしかアクセスすることができなくなります。
2000年:OS仮想化機能(FreeBSD Jail)
2000年に、UnixOSのFreeBSDが、OS仮想化機能であるFreeBSD Jailを発表しました。
chrootと違い、FreeBSD Jailは、ホストOSとJailとよばれるOS仮想化環境とで、ファイルシステム、アプリケーションのプロセス、ネットワークを分離することができました。
これがコンテナの原型となっています。
利用者ごとに環境をわけて、安全性を確保できるようになり、レンタルサーバやホスティングのサービスで使用されることになりました。
2001年にはLinux-Vserverと呼ばれる機能がLinuxに追加され、OS仮想化環境を利用できるようになりました。
2004年には、UnixOSのSolarisでも、Solaris ZoneというOS仮想化環境の提供がはじまりました。
2006年~2008年:cgroupとNamespace
2006年には、Google社によるProcess Containersという機能が発表。
これは現在のコンテナの根幹にあたる仕組みで、プロセスのリソース利用量を制御することができます。
ちなみに、翌年にはcgroupと改名されました。
2008年には、Redhat社がNamespaceを発表し、これは、論理的にシステムリソースを分割する機能でした。
同じ年、IBM社はLXC(LinXContainers)を発表し、cgroupとNamespaceを組み込んだ、一番最初のLinuxのコンテナエンジンとなりました。
このLXCの登場により、以後のコンテナエンジンの形が確立されました。
2013年:Dockerの登場
2013年にDockerが登場し、コンテナを使用するユーザーが増え、システムエンジニア界隈でコンテナ技術が広まりはじめます。
そのなかで、複数のコンテナを一括で管理する「コンテナオーケストレーション」と呼ばれる製品群が登場。
なかでもメジャーなものがGoogle社が開発し、オープンソース化されたKubernetesと、Docker社のDocker Swarmで、どちらとも2014年に発表されました。
Discussion