目次
第1章 コンテナ技術の概要
- 1-1 コンテナを見てみよう
- 1-1-1 コンテナの実行
- 1-1-2 コンテナイメージ
- 1-2 コンテナ技術の基本的な特徴
- 1-2-1 軽量な実行環境
- 1-2-2 高いポータビリティ
- 1-2-3 巨大なエコシステム
- 1-3 本書で注目するDockerとKubernetes
第2章 Dockerの概要
- 2-1 DockerによるBuild,Ship,Run
- 2-1-1 Build:コンテナイメージの作成
- 2-1-2 Run:コンテナの実行
- 2-1-3 Ship:レジストリを用いたコンテナの配布
- 2-2 いろいろなコンテナ実行方法
- 2-2-1 ホストとコンテナ間でのファイル共有やデータの永続化
- 2-2-2 コンテナのポートをホスト上で公開
- 2-2-3 Compose:複数のコンテナをまとめて管理
- 2-3 Dockerfile
- 2-3-1 Dockerfileの基本的な文法
- 2-3-2 マルチステージビルド
- 2-4 コンテナのレイヤ構造
- 2-4-1 コンテナイメージのレイヤ構造
- 2-4-2 コンテナイメージの中身を見る
- 2-4-3 コンテナのビルドとレイヤ構造
- 2-4-4 コンテナの実行時のレイヤ構造
- 2-4-5 レイヤ構造のイメージからのルートファイルシステム作成に用いられる要素技術
- 2-5 DockerのアーキテクチャとOCIランタイム
- 2-6 まとめ
- Column Docker 25を用いてコンテナイメージの中身を見る
第3章 Kubernetesの概要
- 3-1 Kubernetesの特徴
- 3-1-1 ファイルを用いた宣言的管理
- 3-1-2 広範なデプロイ形式のサポート
- 3-1-3 拡張性の高いアーキテクチャとそれを取り巻く開発者コミュニティ
- 3-2 Kubernetesクラスタとkubectl
- 3-3 Kubernetesにおける基本的なデプロイ単位「Pod」
- 3-3-1 Podとコンテナ
- 3-3-2 ラベルとアノテーション
- 3-4 アプリケーションのデプロイ
- 3-4-1 Deployment
- 3-4-2 StatefulSet
- 3-4-3 DaemonSet
- 3-4-4 JobとCronJob
- 3-5 設定項目とボリューム
- 3-5-1 ConfigMapとSecretによるアプリケーション設定の管理
- 3-5-2 Volumeによるストレージ管理
- 3-6 サービス公開
- 3-6-1 Serviceを用いたPodへのアクセス
- 3-6-2 Serviceを外部公開する
- 3-7 KubernetesのPodとCRIコンテナランタイム
- 3-7-1 kubeletによるPod管理
- 3-7-2 CRIランタイム
- 3-7-3 CNIプラグイン
- 3-7-4 kube-proxy
- 3-7-5 ノードコンポーネントの関係
- 3-8 まとめ
第4章 コンテナランタイムとコンテナの標準仕様
- 4-1 コンテナランタイムの概要
- 4-1-1 Docker,Kubernetesとコンテナランタイムの関係
- 4-1-2 ランタイムの2つのレイヤ
- 4-1-3 CRIランタイム,OCIランタイムの連携とPodの作成の流れ
- 4-2 いろいろな高レベルランタイム(Docker互換ランタイム)
- 4-2-1 Docker
- 4-2-2 Podman
- 4-3 いろいろな高レベルランタイム(CRIランタイム)
- 4-3-1 containerd
- 4-3-2 CRI-O
- 4-4 いろいろな低レベルランタイム
- 4-4-1 runc
- 4-4-2 gVisor
- 4-4-3 Kata Containers
- 4-5 OCIの標準仕様
- 4-5-1 OCI Runtime Specification
- 4-5-2 OCI Image Specification
- 4-5-3 OCI Distribution Specification
- 4-6 runcを用いたコンテナ実行
- 4-6-1 コンテナイメージの取得とコンテナの「素」の作成
- 4-6-2 コンテナの実行
- 4-6-3 コンテナの停止,削除
- 4-7 実行環境作成に用いられる要素技術
- 4-7-1 namespace
- 4-7-2 cgroup
- 4-8 まとめ