【LinuC 201試験】2.06 コンテナのまとめ①|Linux初学者向け解説【コンテナの仕組み・仮想マシンとの違い】

※本ページはプロモーションが含まれています

こんにちは!いつもブログを読んでいただき、ありがとうございます。

今回からは新テーマ、「主題2.06:コンテナ」 に入ります!

「コンテナってDockerのこと?」「仮想マシンと何が違うの?」という疑問、よく聞きます。現代のインフラやクラウドでは欠かせない技術なので、試験対策と合わせてしっかり理解していきましょう。

LinuC 201全体の学習ロードマップはこちらにまとめています♪

👉 【LinuC 201】独学合格へのロードマップ!勉強方法と出題範囲の全体像まとめ

前回の仮想化の記事をまだ読んでいない方は、先にそちらで概念を押さえておくとよりスムーズに読めますよ。

👉 2.05 仮想マシンの仕組みとKVMのまとめ

内容が多いため、前半・後半の2記事に分けてお届けします。この記事(前半)では コンテナの仕組みと、仮想マシンとの違い を中心に解説します。


📋 試験の重要情報と学習のゴール

まずは、この主題で絶対に外せない「キーワード」を確認しましょう。

項目内容
主題番号2.06.1 コンテナの仕組み
重要度2(5段階中)
頻出キーワードnamespacecgroupsOverlayFS、コンテナイメージ、コンテナと仮想マシンの違い

重要度2は試験全体の中では比較的低めです。ただし、概念の理解が問われやすいテーマなので、「3つのLinux技術の役割の違い」だけは確実に押さえておきましょう!


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

コンテナを学ぶ前に、まず「仮想マシンと何が違うのか」を整理しましょう。ここは試験でも頻出の比較ポイントです!

項目仮想マシン(VM)コンテナ
OSカーネルゲストOSを丸ごと持つホストOSのカーネルを共有する
起動速度遅い(OSの起動が必要)速い(秒単位で起動)
サイズ大きい(GB単位)小さい(MB単位)
分離レベル強い(完全に独立)軽い(カーネルを共有)
代表技術KVM、VMware、VirtualBoxDocker、LXC

★ここがポイント! コンテナは「ホストOSのカーネルを共有する」という点が最大の特徴です。だから軽くて速い反面、カーネルを共有しているため仮想マシンほど強い分離ではありません。


2. コンテナを支える3つのLinux技術

「コンテナ」は1つの技術ではなく、Linuxカーネルの複数の機能を組み合わせて実現されています。試験ではこの3つの役割が問われます!

namespace(名前空間)— プロセスの分離

namespace は、プロセスが見える「世界」を切り分ける技術です。コンテナ内のプロセスから見ると「自分だけのOS環境」のように見えます。

namespace の種類分離する対象
pidプロセスID(PID)
netネットワーク(IPアドレス・ポートなど)
mntファイルシステムのマウント情報
utsホスト名・ドメイン名
ipcプロセス間通信(共有メモリなど)
userユーザーID・グループID

📝 試験ポイント:「コンテナ内のプロセスを別のプロセスから見えなくする」仕組みとして pid namespace が、「コンテナごとに異なるIPアドレスを持てる」仕組みとして net namespace が問われやすいです。


cgroups(コントロールグループ)— リソースの制限

cgroups(Control Groups) は、プロセスが使えるリソース(CPU・メモリ・ディスクI/Oなど)に上限を設ける技術です。

コンテナA → CPU: 最大50%、メモリ: 最大512MB
コンテナB → CPU: 最大30%、メモリ: 最大256MB

このように、コンテナごとにリソース使用量を制御できます。1つのコンテナがリソースを使い果たしても、他のコンテナに影響が出ないようにするためのしくみです。

📝 補足:現在の主要ディストリビューション(RHEL 8以降・Ubuntu 20.04以降など)では cgroups v2(統合階層)がデフォルト となっています。試験では cgroups として覚えておけばOKです。

★ここがポイント!

  • namespace → プロセスの「見え方」を分離する
  • cgroups → プロセスの「使えるリソース」を制限する

この2つの役割の違いを混同しないように注意しましょう!

💡 初学者がつまずきやすいポイント:「namespace=分離」「cgroups=制限」を逆に覚えてしまうケースがとても多いです。引っかけ問題でもよく狙われるので、どちらがどちらかをしっかり定着させておきましょう。


OverlayFS(Union File System)— ファイルシステムの層構造

OverlayFS は、複数のファイルシステムを「重ねて」1つのファイルシステムとして見せる技術です。コンテナイメージの「層構造(レイヤー)」を実現するために使われています。OverlayFSは、いわゆる Union File Systemの一種 として実装されています。

┌──────────────────────────────┐
│  書き込みレイヤー(コンテナ固有)  ← 変更はここに書き込まれる
├──────────────────────────────┤
│  イメージレイヤー③(アプリ)     │
├──────────────────────────────┤
│  イメージレイヤー②(ライブラリ)  │ ← 読み取り専用
├──────────────────────────────┤
│  イメージレイヤー①(ベースOS)   │
└──────────────────────────────┘
  • イメージレイヤー:読み取り専用。複数のコンテナで共有できる
  • 書き込みレイヤー:コンテナ起動時に追加される読み書き可能な層

📝 試験ポイント:イメージレイヤーは読み取り専用で共有されるため、同じイメージから複数のコンテナを起動してもディスク容量を節約できます。コンテナを削除すると、書き込みレイヤーの変更内容は消えます(イメージ自体は残ります)。

📝 補足:DockerではストレージドライバとしてOverlayFSをベースにした overlay2 が一般的に使用されています。試験では OverlayFS として出題されますが、実務では overlay2 という名称でも登場します。


3. コンテナの種類

Linuxのコンテナ技術には大きく2種類あります。

種類特徴代表
OSコンテナOS全体をコンテナとして動かす。仮想マシンに近い使い方LXC(Linux Containers)
アプリコンテナ1つのアプリやプロセスを動かすために特化(基本は1コンテナ1プロセスの設計Docker

📝 試験ポイント:LinuC試験では LXC がOSコンテナの代表として出題されます。「LXCはOS全体を1コンテナとして扱う」という点を押さえておきましょう。

📝 補足:現在のコンテナ環境について 現在は Docker だけでなく、containerd や CRI-O といったコンテナランタイムも広く使われています。特にKubernetesでは、Dockerではなく containerd などを直接利用する構成が主流になっています。ただし、LinuC試験対策としてはまず Docker の理解を優先しましょう!


試験で狙われる!引っかけポイントまとめ 💣

namespace と cgroups の役割の違いなど、概念の混同を狙った問題が多いテーマです。問題集で一度アウトプットしておくと定着度がぐっと上がりますよ!

【PR】▶ スピードマスター LinuCレベル2問題集(白本)

過去問を解いていて「ここ、引っかかりそう!」と感じたパターンをまとめました。試験直前に見直してくださいね。

#間違いパターン正しい理解
1「コンテナはゲストOSカーネルを持つ」❌ ホストOSのカーネルを共有する
2「cgroupsはプロセスを見えなくする技術」❌ それは namespace。cgroupsはリソース制限
3「namespaceはリソースの上限を設ける技術」❌ それは cgroups。namespaceはプロセスの分離
4「コンテナを削除するとイメージも消える」❌ 消えるのは書き込みレイヤーのみ。イメージは残る
5「LXCはアプリコンテナだ」❌ LXCはOSコンテナ。アプリコンテナの代表はDocker

🎓 一緒に使っている教材はこちら

私がメインで使っている参考書と問題集です。よければ一緒に勉強していきましょう(笑)

【PR】▶ あずき本(Linux教科書 LinuCレベル2 Version 10.0対応) 概念や仕組みをしっかり理解したいときの辞書代わりに。まずここで基礎を固めます。

試験の申し込みはピアソンVUEの受験チケットが便利です。レベル1・レベル2どちらにも使える共通チケットで、楽天市場での購入なので楽天ポイントも貯まってお得ですよ!

【PR】▶ 【ピアソン専用】LinuCレベル1・レベル2・300試験・303試験・304試験共通受験チケット(電子チケット)


✅ まとめ

お疲れ様でした!今回のポイントをおさらいしましょう。

仮想マシン vs コンテナ

項目仮想マシンコンテナ
OSカーネルゲストOSを持つホストOSを共有
起動速度遅い速い
分離レベル強い軽い

コンテナを支える3つの技術

技術役割
namespaceプロセス・ネットワークなどの分離
cgroupsCPU・メモリなどのリソース制限
OverlayFSファイルシステムの層構造を実現(Union File Systemの一種)

コンテナの種類

種類代表特徴
OSコンテナLXCOS全体をコンテナ化
アプリコンテナDocker基本1コンテナ1プロセスの設計

皆さんにとって、今日も素敵な1日になりますように!


参考:LPI-Japan 公式試験範囲 https://linuc.org/linuc2/range/201.html

※本記事はLinuC レベル2 Version 10.0 の出題範囲をもとに作成しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA