1. コンテナ技術入門 MOC

2. Docker MOC

2.1. Docker入門 MOC

2.2. Dockerイメージ (Docker Images) MOC

2.3. Dockerコンテナ (Docker Containers) MOC

  • Dockerコンテナの定義 (Dockerイメージの実行可能なインスタンス)
  • コンテナのライフサイクル
  • コンテナの操作
    • [[docker run]] (コンテナの作成と実行)
      • [[主要なオプション (-d, -it, -p, -v, —rm, —nameなど)]]
    • [[docker ps]] (実行中コンテナの一覧) (-aオプション)
    • [[docker start/docker stop/docker restart]]
    • [[docker exec -it <container_id> ]] (実行中コンテナ内でのコマンド実行)
    • [[docker logs]] (コンテナのログ表示)
    • [[docker inspect]] (コンテナの詳細情報表示)
    • [[docker rm]] (コンテナの削除)
    • [[(オプション) docker pause/docker unpause]]

2.4. Dockerのストレージ (Docker Storage) MOC

2.5. Dockerのネットワーキング (Docker Networking) MOC

  • Dockerネットワークの基本
  • ネットワークドライバ
    • [[bridge (デフォルト)]]
    • [[host]]
    • [[none]]
    • [[overlay (Swarm向け)]]
    • [[macvlan]]
  • コンテナ間の通信
    • [[ブリッジネットワーク内でのコンテナ名による通信]]
  • ホストとのポートマッピング (-p オプション)
  • [[docker network コマンド]]

2.6. Docker Compose MOC

  • Docker Composeの定義と目的 (複数のコンテナで構成されるアプリケーションの定義と実行)
  • [[docker-compose.yml ファイル MOC]]
    • [[主要なキー (version, services, networks, volumes)]]
    • [[サービス定義 (image, build, ports, volumes, environment, depends_onなど)]]
  • Docker Composeのコマンド
    • [[docker-compose up]] (-dオプション)
    • [[docker-compose down]]
    • [[docker-compose ps]]
    • [[docker-compose logs]]
    • [[docker-compose exec]]
  • [[複数コンテナアプリケーションの例 (Webサーバー + DB + キャッシュ)]]
  • [[開発環境としてのDocker Compose]]

3. コンテナオーケストレーション (Container Orchestration) MOC

  • なぜコンテナオーケストレーションが必要か
    • [[多数のコンテナの管理とライフサイクル]]
    • [[スケーリングと負荷分散]]
    • [[可用性と自己修復]]
    • [[サービスディスカバリ]]
    • [[デプロイメントの自動化]]
  • コンテナオーケストレーションツールの比較
    • [[Kubernetes]] (デファクトスタンダード)
    • [[Docker Swarm]] (シンプルさ)
    • [[Amazon ECS]] (AWS統合)
    • [[HashiCorp Nomad]] (シンプル、柔軟)

4. Kubernetes (K8s) MOC

4.1. Kubernetes入門 MOC

  • Kubernetesとは
    • [[Kubernetesの定義と目的 (コンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースプラットフォーム)]]
    • [[Kubernetesの歴史 (Google Borgからの進化)]]
    • [[宣言的APIと制御ループ]]
  • Kubernetesの基本概念
    • [[クラスタ (Cluster)]]
    • [[ノード (Node - Master/Control Plane, Worker)]]
    • [[ポッド (Pod)]] (基本デプロイ単位)
    • [[サービス (Service)]] (ネットワーク抽象化)
    • [[デプロイメント (Deployment)]] (宣言的なアプリケーション管理)
  • 開発環境のセットアップ
    • [[kubectl (コマンドラインツール)]]
    • [[Minikube, kind, Docker Desktop Kubernetes (ローカルクラスタ)]]

4.2. Kubernetesのアーキテクチャ MOC

4.3. Kubernetesの主要なオブジェクト (Core Kubernetes Objects) MOC

4.4. Kubernetesの運用と管理 MOC

4.5. Kubernetesのツールとエコシステム MOC

4.6. Kubernetesのセキュリティ MOC

5. コンテナレジストリ (Container Registries) MOC

6. コンテナセキュリティ (全体像) MOC

  • ビルド時のセキュリティ
    • [[ベースイメージの信頼性確保]]
    • [[脆弱性スキャン (SCA - Software Composition Analysis)]]
    • [[Dockerfileのセキュリティベストプラクティス]] (非rootユーザーなど)
  • デプロイ時のセキュリティ
    • [[コンテナレジストリのセキュリティ]]
    • [[オーケストレータのセキュリティ設定 (RBAC, NetworkPolicyなど)]]
  • ランタイム時のセキュリティ
    • [[コンテナランタイムセキュリティ (gVisor, Kata Containers)]]
    • [[コンテナサンドボックス]]
    • [[ランタイムセキュリティ監視 (Falco, Sysdig Secure)]]
    • [[ホストOSのセキュリティ強化]]
  • コンテナセキュリティのベストプラクティスまとめ

7. CD MOC

8. サーバーレスコンテナ MOC

9. コンテナ技術の将来とトレンド MOC

  • [[WebAssembly (Wasm) とコンテナの共存・融合]]
  • [[コンテナセキュリティの進化 (eBPFなど)]]
  • [[エッジコンピューティングにおけるコンテナ]]
  • [[AI/MLワークロードのコンテナ化 (Kubeflowなど)]]
  • [[開発環境のコンテナ化 (Dev Containers, Gitpod, GitHub Codespaces)]]
  • [[Rootlessコンテナ]]