検索
特集/連載

いまさら聞けないコンテナの歴史 「chroot」から「Docker」まで技術の変遷を解説

「Docker」や「Kubernetes」の人気で注目を浴びるようになったコンテナ技術。実は仮想マシンに匹敵するほどの長い歴史がある。

Share
Tweet
LINE
Hatena

関連キーワード

Docker | UNIX | 仮想マシン(VM) | 仮想化


画像

 コンテナ型仮想化技術(以下、コンテナ技術)の急速な進化により、ITインフラの動向が変化した。コンテナ技術を顧客に提供するベンダーの数も増加している。ただし2013年のコンテナ管理ソフトウェア「Docker」の登場以降は、コンテナ技術の歴史に大きな変化はない。

 現在の仮想マシン(VM)の基となる技術が登場したのは、1960年代だといわれている。VM技術の登場で、複数のユーザーが1台のコンピュータを同時に利用できるようになった。その後数十年の間にVM技術の開発と普及が進んだ。最新のVM技術では、1台の物理マシンで複数のOSを稼働させることができ、それぞれ異なるOSを必要とする複数のアプリケーションのホスティングなど、多様な目的で使用されている。

 コンテナ技術の歴史は、1979年に登場したUNIX OS「Version 7 Unix」の開発途中で生まれた、「chroot」というシステムコール/コマンドの開発で大きく進展した。chrootは、アプリケーションのファイルアクセスを特定のディレクトリ以下に限定することによる、コンテナ型のプロセス分離の起点となった。chrootによるプロセス分離の主な利点は、特定のプロセス内部の脆弱(ぜいじゃく)性が悪用された場合、そのプロセスが他のプロセスの脅威にならないといった、システムセキュリティの向上だ。

 2000年代に入ると、コンテナ技術の開発と洗練化がさらに進んだ。Googleは2003年に、「Kubernetes」の基となったコンテナクラスタ管理システム「Borg」を導入した。Googleのプリンシパルソフトウェアエンジニア、ティム・ホッキン氏によると、BorgではLinuxにすでに備わっていた分離メカニズムを利用したという。

「cgroups」から「LXC」、そして「Docker」へ

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る