書籍概要

Docker/Kubernetes実践コンテナ開発入門 改訂新版

著者
発売日
更新日

概要

話題のコンテナ技術,Docker/Kubernetesの基礎から実際にアプリケーションを作るまでを解説した入門書です。Docker/Kubernetesを実際の現場で活用している著者が最新情報や実践スキルをわかりやすく解説します。

ローカル環境での検証はもちろん,Google Kubernetes Engineへのデプロイなどクラウドでの実践にも触れています。コンテナを中心とした開発スタイル,実践的なCD(継続的デリバリー)入門など現場で本当に必要な知識が身につきます。

Docker/Kubernetesをきちんと本番で使うための王道的な解説を中心としつつ,CLIツールとしてDockerを導入したい,オンプレでKuberentesを使いたいといったニーズにも応える盛りだくさんの一冊です。

こんな方におすすめ

  • Docker/Kubernetesといったコンテナ技術で実際にツールやサービスを構築したい方
  • コンテナの基礎から実践まで一通り学びたい方
  • コンテナの基礎はわかって実際に動かすところを体験したい方
  • コンテナ中心の現代的なソフトウェアデリバリーに興味のある人

サンプル

samplesamplesamplesamplesample

目次

1 コンテナとDockerの基礎

  • 1.1 コンテナとは
  • 1.2 Dockerとは
  • 1.3 コンテナを利用する意義
  • 1.4 ローカルコンテナ実行環境の構築

2 コンテナのデプロイ

  • 2.1 コンテナでアプリケーションを実行する
  • 2.2 簡単なアプリケーションとコンテナイメージを作る
  • 2.3 イメージの操作
  • 2.4 コンテナの操作
  • 2.5 運用管理向けコマンド
  • 2.6 Docker Compose

3 実用的なコンテナの構築とデプロイ

  • 3.1 アプリケーションとコンテナの粒度
  • 3.2 コンテナのポータビリティ
  • 3.3 コンテナフレンドリなアプリケーション
  • 3.4 クレデンシャル(秘匿情報)の扱い方
  • 3.5 永続化データの扱い方

4 複数コンテナ構成でのアプリケーション構築

  • 4.1 Webアプリケーションの構成
  • 4.2 MySQLの構築
  • 4.3 データベースマイグレータの構築
  • 4.4 APIサーバとWebサーバの構築
  • 4.5 リバースプロキシの構築
  • 4.6 複数コンテナ構成でタスクアプリを実行する
  • 4.7 Tiltで複数コンテナ構成の開発体験を向上させる
  • 4.8 コンテナオーケストレーションの基礎を経て

5 Kubernetes入門

  • 5.1 Kubernetesとは
  • 5.2 ローカル環境でKubernetesを実行する
  • 5.3 Kubernetesの概念
  • 5.4 KubernetesクラスタとNode
  • 5.5 Namespace
  • 5.6 Pod
  • 5.7 ReplicaSet
  • 5.8 Deployment
  • 5.9 Service
  • 5.10 Ingress
    • 5.10.1 IngressコントローラーとIngressClass
    • 5.10.2 Ingressを通じたアクセス

6 Kubernetesのデプロイ・クラスタ構築

  • 6.1 タスクアプリの構成
  • 6.2 タスクアプリをKubernetesにデプロイする
  • 6.3 Kubernetesのアプリケーションをインターネットに公開する

7 Kubernetesの発展的な利用

  • 7.1 Podのデプロイ戦略
  • 7.2 Kubernetesでの定期的なバッチジョブの実行
  • 7.3 ユーザ管理とRole-Based Access Control(RBAC)

8 Kubernetesアプリケーションのパッケージング

  • 8.1 Kustomize
  • 8.2 Helm

9 コンテナの運用

  • 9.1 ロギングの運用
  • 9.2 可用性の高いKubernetesの運用

10 最適なコンテナイメージ作成と運用

  • 10.1 運用に最適なコンテナイメージとは
  • 10.2 軽量なベースイメージ
  • 10.3 軽量なコンテナイメージを作る
  • 10.4 Multi-stage builds
  • 10.5 BuildKit
  • 10.6 セキュアなコンテナイメージの利用と作成
  • 10.7 CIツールでコンテナイメージをビルドする

11 コンテナにおける継続的デリバリー

  • 11.1 継続的デリバリーとは
  • 11.2 Flux
  • 11.3 Argo CD
  • 11.4 PipeCD
  • 11.5 ソフトウェアデリバリーの完全自動化

12 コンテナのさまざまな活用方法

  • 12.1 チーム開発で開発環境を統一・共有する
  • 12.2 コマンドラインツール(CLI)をコンテナで利用する
  • 12.3 負荷テスト

App.A 開発ツールのセットアップ

  • A.1 WSL2
  • A.2 asdf
  • A.3 kind
  • A.4 Rancher Desktop

App.B さまざまなコンテナオーケストレーション環境

  • B.1 Google Kubernetes Engine(GKE)
  • B.2 Amazon Elastic Kubernetes Service(EKS)
  • B.3 Azure Kubernetes Service(AKS)
  • B.4 オンプレミス環境でのKubernetesクラスタの構築
  • B.5 Amazon Elastic Container Service(ECS)

App.C コンテナ開発・運用のTips

  • C.1 コンテナランタイム
  • C.2 KubernetesのTips
  • C.3 コンテナ開発,デプロイのTips
  • C.4 生成AI技術を活用したコンテナ開発の効率化
  • C.5 Alpine Linuxのパッケージマネージャ apk

サポート

ダウンロード

本書のサンプルファイルは下記のリンク先よりダウンロードできます。適宜ご利用ください。

(2024年3月7日更新)

サンプルファイル(github.com)
taskapp
https://github.com/gihyodocker/taskapp
container-kit
https://github.com/gihyodocker/container-kit
echo
https://github.com/gihyodocker/echo
image-bootstrap
https://github.com/gihyodocker/image-bootstrap
echo-bootstrap
https://github.com/gihyodocker/echo-bootstrap
argocd-example-apps
https://github.com/gihyodocker/argocd-example-apps
pipecd-examples
https://github.com/gihyodocker/pipecd-examples
cloudshell
https://github.com/gihyodocker/cloudshell

商品一覧