ページの先頭です


ページ内移動用のリンクです

  1. ホーム
  2. IIJについて
  3. 情報発信
  4. 広報誌(IIJ.news)
  5. IIJ.news Vol.193 April 2026
  6. 仮想サーバとコンテナ

インターネット・トリビア 仮想サーバとコンテナ

IIJ.news Vol.193 April 2026

執筆者プロフィール

IIJ 広報部 技術統括部長

堂前 清隆

IIJの技術広報担当として、技術Blogの執筆・YouTube動画の作成・講演活動などを行っています。これまでWebサイト・ケータイサイトの開発、コンテナ型データセンターの研究、スマホ・モバイル技術の調査などをやってきました。ネットワークやセキュリティを含め、インターネット全般の話題を取り扱っています。

仮想化技術もずいぶん一般的になりました。仮想化はクラウドの根幹的な技術であり、ユーザ企業自身が保有するIT設備でも広く使われています。特にサーバの仮想化は、情報システム部門の方には馴染みが深いのではないでしょうか。

サーバの仮想化といえば、長らく「仮想サーバ」技術が一般的でした。ところが、最近は「コンテナ」という仮想化技術が取り上げられています。どう違うのでしょうか?

まず、なぜサーバを仮想化するかについて考えます。サーバの仮想化の大きな目的として、複数の用途を1つの物理的なサーバに集約することが挙げられます。ITシステムは多くのプログラムで構成されていますが、これらをまとめて1つのサーバで実行できれば、コストやスペースの節約につながります。

現在サーバで使われているLinuxやWindowsなどのOSは、基本的な機能として複数のプログラムを同時に実行できます。ここでわざわざ仮想化技術を用いるのは、複数のプログラムを1つのサーバ上で動かしながら、それぞれが干渉しないように隔離するためです。「集約しながら隔離する」――ここに仮想化の肝があります。

この「隔離」にも2つの目的があります。1つは権限の分離、セキュリティの確保です。あるプログラムが同じサーバで動いている他のプログラムやデータに想定外の影響を与えないよう、障壁を設ける必要があります。もう1つは、実行環境の分離です。コンピュータのプログラムは単独で動くのではなく、OSが提供する機能や、他のプログラムと共通で使われるライブラリ(プログラムの部品)を使いながら動作します。こうした動作に必要な要素をまとめて「実行環境」と呼んでいます。ここで、あるプログラムAがライブラリXのバージョン1.1を要求し、別のプログラムBはライブラリXのバージョン1.2を要求するということが発生します。これらA・Bを同一のサーバで動かすためには、なんとかしてライブラリXのバージョン1.1と1.2を同居させなければなりません。不可能ではありませんが、手間がかかり、事故も起きやすくなります。

このような課題に対し、仮想サーバ技術はソフトウェアで「小さなコンピュータ」を再現するというアプローチに出ました。これなら、プログラムからは独立したサーバが動いているのと区別がつきません。権限の分離も問題ありませんし、実行環境も完全に分かれています。

仮想サーバはわかりやすいアプローチですが、1つひとつのサーバが個別のサーバとして動作するため、重複して実行される処理が多く、運用にも手間がかかりがちです。

これに対しコンテナ技術は、あくまで1つのサーバ上で複数のプログラムを動かす前提で、それぞれのプログラムが利用できるOSの機能・ストレージ・ネットワークを制限するというアプローチを取っています。コンテナ化されたプログラムからは、同じサーバ上で動いている他のプログラムは存在しないように見え、データにもアクセスできません。さらにプログラムとライブラリなどを1つにまとめてパッケージ化する仕組みを作ることで、実行環境の管理を容易にしています。

コンテナは仮想サーバに比べると、1つの単位が小さく「軽量」と言われます。また、管理対象のサーバ台数がむやみに増えないのも利点です。こうした特徴から、徐々にコンテナ技術の利用が広がっています。


ページの終わりです

ページの先頭へ戻る