LinuCレベル1-101「1.01.2 仮想マシン・コンテナの概念と利用」の解説まとめ

IT資格

LinuCレベル1 101試験の出題範囲である「1.01.2 仮想マシン・コンテナの概念と利用」の解説をまとめました。

LinuCレベル1 101試験の以下の内容を解説します。

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

重要度4
概要・仮想マシンとコンテナを実現する基本技術を理解している。
・ハイパーバイザー、コンテナのそれぞれの特徴と違いを理解する。
・仮想マシン、コンテナの起動、停止ができる。
詳細カーネルとハイパーバイザーと仮想マシンの関係を理解している。
・ハイパーバイザー、仮想化支援機能
・仮想マシンとコンテナの特徴を理解している。
ホストOSとコンテナの関係を理解している。
仮想マシンの起動と停止ができる。
・virsh
仮想マシンにログインできる。
コンテナの起動と停止ができる。
・docker
LinuCレベル1 101試験 出題範囲 | LPI-Japan
仮想環境を含むLinuxシステムの基本操作とシステム管理が行えるエンジニアであることを認定します。試験センターの他に自宅でも受験できます。受験費用は税込16,500円。

仮想マシンとは

仮想マシンは、一台の物理的なサーバーそのものに対して、複数のOSが使える状態になっていることを指します。図で表すと以下のようになります。

仮想マシンは以下のように説明することもできます。

  • ハイパーバイザー上で仮想マシンを起動し、ゲストOSを動作させる

ハイパーバイザー上に仮想マシンをビルドする

ハイパーバイザーを使用する環境では、Dell PowerEdgeなどの物理的なサーバーに対してハイパーバイザー上にゲストOSとなるOSをビルドする形で使用します。

ゲストOSとは、Red Hat Enterprise LinuxなどのLinux OSやWindows Server 2025などのサーバー用OSなどが該当します。

代表的なハイパーバイザーとしては、XenやKVMなどがあげられます。

https://xenproject.org/about
KVM とは?をわかりやすく解説
KVM(カーネルベースの仮想マシン)は、Linuxカーネルに統合された仮想化技術であり、Linuxは複数の独立した仮想マシン(VM)を実行するハイパーバイザーとして機能させます。

Intel VTとAMD-V

Intel VT(Intel Virtualization Technology)やAMD-V(AMD Virtualization)はCPUの仮想化支援機能で、仮想化ソフトが行う一部の処理をCPUが処理することで仮想化処理を高速化する機能のことです。

Intel® Virtualization Technology - 1.0 - ID:721073 | Intel® NUC 12 Extreme / Pro X
VT/Intel Virtualization Technology 対応CPUリスト
Windows 7のXP互換について。Windows 7 の XP互換モードを使用するには、プロセッサが仮想化技術(VT インテル バーチャライゼーション・テクノロジーまたはAMD-Vテクノロジに)に対応している必要があります。

コンテナとは

コンテナは、コンテナ上で複数のアプリを実行できるようにするアプリの仮想的な実行環境です。代表的なコンテナソフトとしてはDockerがあります。

Dockerの概要

DockerはLinuCで出題範囲に指定されているコンテナソフトです。以下の記事でDockerの概要を説明しています。

Kubernetes(クーバネティス、K8s)の概要

Kubernetesはコンテナのクラスターソフトです。わかりやすく書くと、コンテナを複数まとめて管理するソフトウェアです。

コンテナと比較して、仮想マシンが優れている点

仮想マシン視点で、コンテナと比較したときに仮想マシンが優れている点は以下です。

  • 物理マシンから構成を移行しやすい
  • 1つのホストOS環境で複数のOSを共存できる

一つのOSを1台のサーバーで使用している環境から、仮想マシンへ移行するのは仮想マシン(仮想環境)に関する重要な要素です。また、仮想マシンは、1つのホストOS上で複数のOSを使用することができる環境という点もポイントです。

ホストOSとは?ホストOSの説明

ゲストOSとは?ゲストOSの説明

ゲストOSについては以下のように説明が可能です。

  • ゲストOSは仮想マシンにインストールしたOSのこと
  • ゲストOSは通常のOSのように停止したり再起動できる

libvirtとvirshコマンドの概要

LinuCレベル3の例題の解説に書かれている内容でlibvirtの説明を引用します。わかりやすく書くと、libvirtは、「仮想環境での操作を統一して行うことができるライブラリ」です。「library」と「virtualization」の単語を合わせて「libvirt」と書きます。

libvirtはXenやKVMなど、様々な仮想化環境の操作を統一的なAPIで処理できるようにするためのライブラリです。libvirtのAPIに対応するプログラムを開発すれば、仮想化環境を問わずに実行することができるので、管理ツールなどの適用範囲が拡がります。
対応している仮想化環境などの情報は、libvirtのWebサイトで確認できます。

○libvirtのWebサイト
https://libvirt.org/

libvirtを利用するには、libvirtdがデーモンとしてAPI操作を受け付けるために動作している必要があります。libvirt対応プログラムはlibvirtdにアクセスできなければなりません。リモートからのAPI操作を行いたい場合には、libvirtdはデフォルトではTCPの16509番ポートを利用します(設定で変更も可能)。

virshはlibvirtのAPIを操作するサンプルプログラムのようなものですが、実際にはコマンドラインで各種操作を行うのに便利であるため、実務でもよく使われています。仮想マシンの起動や停止など、仮想化環境で必要となる基本的な操作がコマンドラインで行えます。

Libvirtおよび関連ツール - Linux技術者認定 LinuC | LPI-Japan
LinuCレベル3を受験される方向けに304試験の例題と解説をご紹介しています。LinuCは、クラウド・DX時代に活躍するエンジニアに求められるLinuxを中心とした技術や知識を身につけることができるLinux技術者認定試験。出題範囲に含ま...

RHEL7のドキュメントにも以下のように記載があります。

libvirt パッケージは、さまざまなオペレーティングシステムの仮想化機能と対話できる、ハイパーバイザーに依存しない仮想化 API を提供します。これには、以下が含まれます。

・ホスト上の仮想マシンを安全に管理するための仮想化レイヤー。
・ローカルホストとネットワーク接続されたホストを管理するためのインターフェイス。
・仮想マシンのプロビジョニング、作成、変更、監視、制御、移行、および停止に必要な API。libvirt では複数のホストに同時にアクセスできますが、API は単一ノードの操作に限定されます。

3.2. libvirt および libvirt ツール | 仮想化入門ガイド | Red Hat Enterprise Linux | 7 | Red Hat Documentation
3.2. libvirt および libvirt ツール | 仮想化入門ガイド | Red Hat Enterprise Linux | 7 | Red Hat Documentation

virshコマンドは、ハイパーバイザーを管理するためのコマンドです。

virsh はゲストと hypervisor を管理するための コマンドラインインターフェイスです。

第22章 virsh でゲストを管理 | 仮想化ガイド | Red Hat Enterprise Linux | 5 | Red Hat Documentation
第22章 virsh でゲストを管理 | 仮想化ガイド | Red Hat Enterprise Linux | 5 | Red Hat Documentation

virshコマンドの使い方

LinuCレベル1 101試験の出題範囲である、virshコマンドの使い方を紹介します。

以下は virsh コマンドの主なサブコマンドです。

サブコマンド説明
createXML形式のファイルから仮想マシンを作成し、新規の仮想マシンを起動する
console仮想マシンのコンソールに接続する
start仮想マシンを起動する
shutdown仮想マシンを正常に終了する
destroy仮想マシンを強制終了する
reboot仮想マシンを再起動する
suspend仮想マシンを一時停止する
resume仮想マシンを再開する
list仮想マシンの一覧を表示する
list --all全ての仮想マシンを表示
dumpxml仮想マシンの定義ファイルをXML形式で出力する

Dockerの操作コマンドについて

LinuCレベル1 101の試験範囲には、以下の内容が含まれます。

コンテナの起動と停止ができる。
・docker

Dockerを操作するコマンドの使い方についても解説していきます。

Dockerコマンドの使い方

以下は docker コマンドの主なコマンドラインです。

コマンド説明
docker runコンテナを作成・起動
docker start既存のコンテナを起動
docker stopコンテナを停止
docker killコンテナを強制停止
docker psコンテナを一覧表示
docker rmコンテナを削除
docker attachコンテナの標準入出力に接続
docker exec起動中のコンテナでコマンドを実行
docker loginDockerレジストリにログインする
docker pullDocker Hubからイメージをダウンロード
docker pushDocker Hubにアップロード
docker imagesイメージを一覧表示
タイトルとURLをコピーしました