メインコンテンツまでスキップ

Linux 学習ガイド

コンテナ技術(Docker/Kubernetes)を理解するために必要なLinuxの基礎知識を学ぶドキュメント集です。


学習の目的

  • コンテナ技術の基盤となるLinuxを理解する
  • サーバー運用に必要な基本操作を習得する
  • トラブルシューティング能力を身につける

学習ロードマップ

┌─────────────────────────────────────────────────────────────┐
│ 学習の流れ │
├─────────────────────────────────────────────────────────────┤
│ │
│ 入門 (初めての方) │
│ └── Linux 入門 │
│ └── ターミナルの基本、最初のコマンド │
│ │
│ 基礎 (必須知識) │
│ ├── Linux 基礎 │
│ │ └── シェル、ディストリビューション │
│ ├── ファイルシステム │
│ │ └── ディレクトリ構造、マウント │
│ ├── プロセス管理 │
│ │ └── プロセス、シグナル、デーモン │
│ └── ユーザーと権限 │
│ └── パーミッション、sudo │
│ │
│ ネットワーク │
│ ├── ネットワーク基礎 │
│ │ └── TCP/IP、ソケット、DNS │
│ ├── ファイアウォール │
│ │ └── iptables、nftables │
│ └── トラブルシューティング │
│ └── 診断ツール、問題解決 │
│ │
│ コンテナ技術の基盤 │
│ ├── Namespaces │
│ │ └── プロセス・ネットワーク・マウントの分離 │
│ ├── Cgroups │
│ │ └── CPU・メモリ・I/Oの制限 │
│ └── OverlayFS │
│ └── コンテナイメージのレイヤー構造 │
│ │
│ 運用知識 │
│ ├── systemd │
│ │ └── サービス管理 │
│ ├── ログ管理 │
│ │ └── syslog、journald │
│ └── パフォーマンス監視 │
│ └── CPU、メモリ、ディスク、ネットワーク │
│ │
└─────────────────────────────────────────────────────────────┘

ドキュメント一覧

入門

ドキュメント説明所要時間
Linux 入門ターミナルの基本、最初のコマンド30分

基礎

ドキュメント説明所要時間
Linux 基礎カーネル、シェル、環境変数、仮想メモリ60分
ファイルシステムディレクトリ構造、マウント、inode45分
プロセス管理プロセス、シグナル、デーモン45分
ユーザーと権限パーミッション、sudo45分
シェルスクリプト変数、条件分岐、ループ、関数45分
シェルスクリプト応用例CSV読み込み、APIテスト、ログ出力30分

ネットワーク

ドキュメント説明所要時間
ネットワーク基礎TCP/IP、ソケット、DNS60分
SSHリモート接続、鍵認証、トンネリング45分
iptables/ファイアウォールパケットフィルタリング45分
ネットワークトラブルシューティング診断ツール45分

コンテナ技術の基盤

ドキュメント説明所要時間
Namespacesプロセス・ネットワーク・マウントの分離60分
Cgroupsリソース制限45分
OverlayFSコンテナのファイルシステム45分

運用

ドキュメント説明所要時間
systemdサービス管理45分
ログ管理syslog、journald45分
パフォーマンス監視リソース監視45分

リファレンス

ドキュメント説明
コマンドリファレンスよく使うコマンド一覧

推奨学習パス

パス1: コンテナを理解したい方(推奨)

1. Linux 入門
2. Linux 基礎
3. ファイルシステム
4. プロセス管理
5. Namespaces ★
6. Cgroups ★
7. OverlayFS ★

★ コンテナ技術の核心部分

パス2: サーバー運用を学びたい方

1. Linux 入門
2. Linux 基礎
3. ユーザーと権限
4. systemd
5. ログ管理
6. パフォーマンス監視

パス3: ネットワークを学びたい方

1. ネットワーク基礎
2. iptables/ファイアウォール
3. ネットワークトラブルシューティング
4. Namespaces(Network Namespace)

学べること

Docker を理解するために

Linux の概念Docker での活用
Namespacesコンテナの分離
Cgroups--memory, --cpus オプション
OverlayFSイメージレイヤー
プロセスPID 1、シグナル処理
ネットワークdocker network

Kubernetes を理解するために

Linux の概念Kubernetes での活用
NamespacesPod のネットワーク分離
CgroupsResource Limits/Requests
iptablesService、NetworkPolicy
systemdkubelet の管理

実践環境の準備

ローカルでの学習

# Docker で Linux 環境を用意
docker run -it ubuntu:22.04 /bin/bash

# または Vagrant
vagrant init ubuntu/jammy64
vagrant up
vagrant ssh

クラウドでの学習

  • AWS EC2(無料枠あり)
  • GCP Compute Engine(無料枠あり)
  • Azure Virtual Machines

次のステップ

Linux の基礎を学んだ後は、以下のドキュメントに進みましょう:


参考リソース