全1471文字
PR

 コンテナとは仮想化技術の一種。クラウド環境などで広く使われている。従来の仮想化から順に追っていくとコンテナを理解しやすい。仮想化とは、ハードウエアをソフトウエアによって再現する技術だ。コンピューターの機能をソフトウエアとして実現する。このソフトウエアは仮想マシンや仮想機械などと呼ばれる。

 仮想マシンは仮想化されたコンピューターであり、アプリケーションだけではなくOSやミドルウエアといった実行環境も含まれる。仮想マシンに導入するOSはゲストOSと呼ばれる。

 仮想マシンはソフトウエアなので、1台のハードウエアで複数のゲストOSを動作させられる。1台のコンピューターで複数のコンピューターを同時に動かすイメージだ。ハードウエアを効率的に利用でき、運用や管理のコスト削減も期待できる。

 異なるOSを搭載した仮想マシンを動かせることも特徴だ。例えばWindows上でLinux環境の仮想マシンを動かすといったことが可能だ。

 仮想マシンは仮想化ソフトと呼ばれるソフトウエア上で動かす。米ブイエムウェアの「vSphere ESXi」や米マイクロソフトの「Hyper-V」が代表的である。

ゲストOSを使わない

 だが仮想マシンを使う仮想化では、ゲストOSをそれぞれにインストールしなければならない。ゲストOSを動かすためのハードウエアリソース(メモリーやCPUといったコンピューター資源)が必要となり、ゲストOSの起動に時間もかかる。仮想マシンを作成するのも「部品」が多いために手間がかかるという欠点がある(PICT1)。

PICT1●アプリケーションの実行に必要な部品を1つにまとめられる
PICT1●アプリケーションの実行に必要な部品を1つにまとめられる
(イラスト:なかがわ みさこ)
[画像のクリックで拡大表示]

 そこで考え出されたのがコンテナである。コンテナはゲストOSがない仮想マシンといったイメージだ。アプリケーションやミドルウエアなどが詰まった「容器」であり、ハードウエアのOS(ホストOS)を使って動作する。ホストOS上で動作するので、ハードウエアリソースは少なくて済む。既に動いているホストOS上で動作するので、ゲストOSの起動を待つ必要もない。

 コンテナとホストOSを仲介するソフトウエアはコンテナエンジンやコンテナ管理ソフトなどと呼ばれる。コンテナエンジンとしては、オープンソースソフトウエア(OSS)として開発されている「Docker」が代表的だ。