Kompira

Menu Menu

System operation glossary

コンテナ

ホストとなるコンピューターOS上に仮想的なユーザー空間(コンテナ)を構築する仮想化技術です。
ホストOS上にコンテナエンジンと呼ばれる仮想化ソフトウェアを用意し、その上でコンテナを実行させることで、複数のアプリケーションを同じOS上で動かすことが出来ます。
ハイパーバイザーを利用したゲストOSを動かす仮想化と比較して、コンテナ自身はホストOSの機能を共有利用するため、オーバーヘッドが少なく、軽く速い処理が特徴です。

コンテナにはアプリケーションと必要な設定ファイルやライブラリ、ランタイムなどの実行環境をまとめて格納され、それぞれが独立して実行することができます。このため、他のアプリケーションとの競合を意識せずにシステムの構築~実行を行えます。コンテナAでは販売管理、コンテナBでは製造管理というように、1つのホストOS上で複数の業務アプリケーションをコンテナを用いて稼働させることができます。

特にアプリケーションの開発段階では、本番環境と作業環境が異なると検証する際に条件を全く同じに揃える必要があります。コンテナ技術を用いる事で、動作環境や設定などをまるごとコンテナとしてまとめる事が出来るようになり、動作環境の差異を気にする必要性が小さくなりました。また本番環境においてもコンテナをコピーすることで容易に拡張することができます。

コンテナ技術は大きく(1) コンテナエンジン、(2) コンテナイメージ、(3) コンテナより構成されます。コンテナの動作に必要な機能を提供するのがコンテナエンジンです。代表的なコンテナエンジンにはDocker、またコンテナを利用する際のオーケストレーションシステムとしてKubernetesがあります。

コンテナイメージは、コンテナに格納されるアプリケーション本体や実行に必要な設定ファイル、ミドルウェア、ライブラリなどをまとめたファイルです。いわばコンテナの設計図にあたります。一般的に用いられたり汎用性があるコンテナイメージはリポジトリーサイトなどで共有されているものもあります。

コンテナは独立してコンテナエンジン上で動作するアプリケーションです。一般的にはコンテナイメージから作成されます。