「コンテナ」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「コンテナ とは、LinuxでいえばLXCDockerといった「プロセス空間を隔離」したOSレベルでの仮想化です。 '''読み方'''...」)
(相違点なし)

2015年1月9日 (金) 21:11時点における版

コンテナ とは、LinuxでいえばLXCDockerといった「プロセス空間を隔離」したOSレベルでの仮想化です。

読み方

コンテナ
こんてな
container
こんてな

概要

コンテナと仮想マシンの違い

仮想マシン

仮想マシンでは、以下のようなスタック構造になります。 HWの上にホストOSがあり、ホストOSの上で仮想マシン(VM)が実行され、VMの上で、ゲストOSが動作し、ゲストOSの上でプロセスが実行されます。VMの上で動作するゲストOSは、ホストOSと異なるものが実行できます。

仮想マシン(VM)のスタック
プロセス プロセス プロセス プロセス
ゲストOS ゲストOS
vm vm
OS
HW

コンテナ

コンテナのプロセスは、ホストOSのプロセスとして実行されます。コンテナに属するプロセスは、通常のプロセス空間とは異なる隔離された空間内で実行されます。隔離空間をコンテナと呼びます。

コンテナのスタック
隔離空間
プロセス プロセス
隔離空間
プロセス プロセス
プロセス プロセス
OS
HW

コンテナのメリット

  • 起動が軽いです
  • オーバーヘッドが少ないてすみます
  • 必要なプロセスだけ起動すれば良いです(ゲストOSは不要)

コンテナのデメリット

  • OSが実行できるプロセスしか実行できません。
  • それぞれのコンテナから見えるカーネルは、同じカーネルであるため、コンテナから見える・アクセスできるデバイスやカーネルモジュールは、すべて同じになります。

コンテナを実現する機能

  • namespace
  • cgroups

namespace

namespace(名前空間) は、プロセスをグループ化し、隔離されたコンテナの空間を作る機能です。 namespace には、以下の種類があります。

  • マウント名前空間
  • UTS名前空間
  • PID名前空間
  • IPC名前空間
  • ユーザ名前空間
  • ネットワーク名前空間

関連項目