よろずやIT
用語辞典

コンテナとVM(仮想マシン)の違いとは

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

用語辞典のイラスト

どちらも「1台のパソコンの中に、別環境を作る」技術

VM(仮想マシン)とコンテナは、どちらも、1台の物理的なパソコン(サーバー)の中に、独立した別のシステム環境を作り出すための技術です。しかし、その実現方法には大きな違いがあります。

VM(仮想マシン)とは

VMは、1台のパソコンの中に、まるごと独立した、別のコンピューターをそっくりそのまま再現する技術です。OS(基本ソフト)そのものを、それぞれの仮想マシンごとに個別に用意します。

コンテナとは

以前の記事で紹介したDockerに代表されるコンテナは、OSの根幹部分は元のパソコンのものを共有しつつ、アプリケーションを動かすために必要な部分だけを、軽量に分離して独立させる技術です。

「一戸建て」と「マンションの一室」に例えると

それぞれのメリット・デメリット

VMのメリット・デメリット

コンテナのメリット・デメリット

使い分けの目安

強固な隔離性が求められる場面ではVM、開発環境の手軽な再現や、多数の環境を効率的に稼働させたい場面ではコンテナ、というように、目的に応じて使い分けられています。近年は、コンテナの手軽さが評価され、開発現場を中心に活用が広がっています。

「新しいから」で選ぶと失敗する

実務で感じるのは、「新しい技術だからコンテナにすればいい」というわけではないということです。コンテナは非常に便利ですが、システムによってはVMの方が運用しやすいケースもあります。例えば、既存システムがVM前提で安定している、運用担当者がコンテナに慣れていない、移行することで得られるメリットが小さい、古いシステムで変更箇所が多い、という場合です。逆に、複数の環境で同じアプリケーションを動かしたい場合などは、コンテナのメリットが非常に大きくなります。最初から「コンテナが正解」と決めるのではなく、「何を解決したくてコンテナを使うのか」を考えることが重要だと感じます。技術選定では、最新かどうかよりも、その企業が5年後も運用できるかを見るようにしています。

振り返ると

VMは「独立した家をまるごと用意する」技術、コンテナは「土台を共有しながら、部屋だけを分離する」技術です。それぞれの特性を理解し、目的に応じて選択されています。

関連記事:Kubernetesとは/サーバーレスとは

PR

Dockerの入門書を探す

Amazonで見る
SHAREXLINEはてブ

関連記事

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。