Instiq
第1章 · Linuxのインストールと仮想マシン・コンテナの利用·v1.0.0·更新 2026/7/6·読了目安 約11分

変更要約: 初版(主題1.01・副主題1.01.1〜1.01.5に対応)

1.2仮想マシン・コンテナの概念と利用

この節の要点

仮想マシンとコンテナを実現する基本技術を学びます。ハイパーバイザー とカーネル・仮想マシンの関係、仮想化支援機能、仮想マシンとコンテナの特徴の違い(ゲストOS の有無・カーネル共有)、virsh による仮想マシンの起動/停止、docker によるコンテナの起動/停止を押さえます。

Version 10.0 の LinuC が従来の Linux 資格と一線を画すのが、この仮想化・コンテナの主題です。クラウド時代の Linux は物理マシン上に直接ではなく、仮想マシンかコンテナの上で動くことが標準になったため、両者の仕組みの違いと基本操作が問われます。

1.2.1ハイパーバイザーと仮想マシン

  • ハイパーバイザー=物理マシンの CPU・メモリ・ディスクを仮想化し、複数の仮想マシン(VM)に分配するソフトウェア。Linux では KVM がカーネルの機能として提供される。
  • 仮想化支援機能=CPU が持つ仮想化専用命令(Intel VT-x/AMD-V)。ハイパーバイザーはこれを使って実用的な速度で VM を動かす。
  • 各 VM は独立したゲスト OS(カーネルを含む)を起動する。ホストと異なる OS も動かせる反面、起動が遅くリソース消費も大きい。
  • VM の起動と停止=virsh(libvirt の CLI)。virsh start <名前>virsh shutdown <名前>。VM へは仮想コンソールや SSH でログインする。

1.2.2コンテナとホスト OS の関係

  • コンテナホスト OS のカーネルを共有し、プロセスを名前空間で隔離する技術。ゲスト OS を起動しないため軽量・高速起動
  • カーネルを共有するため、ホストと異なる系統の OS(例:Linux ホスト上の Windows コンテナ)は動かせない
  • コンテナの起動と停止=dockerdocker run でイメージから作成して起動、docker startdocker stop で既存コンテナを起動/停止。
試験ポイント

「ゲスト OS を起動する=仮想マシン/ホストのカーネルを共有する=コンテナ」 の対比が最頻出です。「軽量で起動が速い」「OS の種類はホストに縛られる」ときたらコンテナ、「ホストと別の OS を動かせる」「ハイパーバイザーが必要」ときたら仮想マシンを選びます。操作コマンドは VM=virsh/コンテナ=docker で結びつけて覚えます。

構造を下から積み上げると、物理マシン → ホストのカーネル(KVMハイパーバイザーの役割)→ 仮想マシン(それぞれがゲスト OS を起動)という階層が仮想化の形です。一方コンテナは、物理マシン → ホスト OS のカーネル → コンテナランタイム(docker 等)→ 複数のコンテナ、という形でカーネルの上に直接載ります。この違いが試験で問われる特徴の差をすべて説明します:VM は分離が強く別 OS も動くが重い、コンテナは軽く数秒で起動するが分離はプロセスレベルでホストのカーネルに依存します。運用コマンドは、VM が virsh list --all(一覧)→ virsh startvirsh shutdown(ACPI 経由の正常停止)、コンテナが docker ps -a(一覧)→ docker startdocker stop(SIGTERM→SIGKILL の順で停止)という対応関係で覚えると混同しません。

観点仮想マシンコンテナ
OSゲスト OS を各 VM が起動ホストのカーネルを共有
起動速度・サイズ遅い・大きい速い・軽量
異なる OS動かせる(Windows 等)ホストと同系統のみ
主な操作virsh start / shutdowndocker run / start / stop
注意

ひっかけ: 「コンテナは軽量な仮想マシンであり、それぞれ独自のカーネルを持つ」は誤りです。コンテナはカーネルを持たず、ホストのカーネルを共有します。逆に「仮想マシンはホストのカーネルで動く」も誤り=VM は自分のゲスト OS(カーネル込み)を起動します。属性の入れ替えに注意してください。

仮想マシン(ゲストOS起動)とコンテナ(カーネル共有)の特徴とコマンドを対比した図。
ゲストOSの有無が全ての差を生む

1.2.3この節のまとめ

  • VM=ハイパーバイザー+ゲスト OS(強い分離・別 OS 可・重い)/コンテナ=カーネル共有(軽量・高速・同系統のみ)
  • 操作は virsh(VM)/docker(コンテナ)。仮想化支援機能(VT-x/AMD-V)が実用速度の前提

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. 仮想マシンとコンテナの違いの説明として正しいのはどれ?

Q2. KVM 上の仮想マシン「web01」を正常に停止させたい。適切なコマンドは?

Q3. ハイパーバイザーが仮想マシンを実用的な速度で動かすために利用する、CPU の機能はどれ?

理解度を確認第1章「Linuxのインストールと仮想マシン・コンテナの利用」の問題を解く