🌕

コンテナの歴史

2023/02/02に公開

はじまり: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