さわって学ぶクラウドインフラ docker 基礎からのコンテナ構築
サワッテマナブクラウドインフラドッカーキソカラノコンテナコウチク
- 著者:
- 大澤 文孝 / 浅居 尚(オオサワ フミタカ / アサイ ショウ)
- 出版社:
- 日経 BP
- 出版日:
- 2020年06月12日頃
- ISBN:
- 9784296106424
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
デファクト技術の「コンテナ」
「わかる」から「使える」へ
サーバー環境だけでなく幅広く使われている「コンテナ技術」は、もはやデファクト技術と言っても言い過ぎではないでしょう。インフラ技術者だけでなく、アプリケーション開発者にとっても重要な技術です。
本書は、自分でコンテナ環境を構築できるようになるための本です。題材に「Docker」を使いました。「技術解説書」というより「技術実践書」。IT 技術を本当に理解するには理論の学習だけでは不十分で、実際にさわってみることが大事です。そうすることで初めて腹落ちし、「技術がわかる」状態から、「技術が使いこなせる」状態にレベルアップすることができます。
本書では、Docker のインストール方法に始まり、基本的な Web サーバーを起動させるところから、永続化、ネットワーク、コンテナイメージへと順番に学ぶことができます。さらに、複数のコンテナを使うことを想定し、「Docker Compose」や「Kubernetes」についても学習できます。Kubernetes は学習ツールとして「Minikube」を用い、最終的に「Amazon EKS」でコンテナを実行するはじめの一歩までを説明します。
新しい技術の習得は、想像している以上に難しいものです。理解できていない状況でやみくもに技術に触れても、迷子になるばかり。本書では「迷子にさせない」工夫が満載されており、本書の通りに実施すれば、迷うことなく、コンテナ環境を構築できます。
インフラ技術者の最初の 1 冊として執筆していますが、アプリケーション開発者のインフラ学習書としても最適です。ぜひあなたも、本書を活用してコンテナ技術を習得してください。
第 1 章 コンテナの仕組みと利点
第 2 章 Docker を利用できるサーバーを作る
第 3 章 5 分で Web サーバーを起動する
第 4 章 Docker の基本操作
第 5 章 コンテナ内のファイルと永続化
第 6 章 コンテナのネットワーク
第 7 章 複数コンテナをまとめて起動する Docker Compose
第 8 章 イメージを自作する
第 9 章 Kubernetes を用いたコンテナ運用
技書の森解説
『さわって学ぶクラウドインフラ docker 基礎からのコンテナ構築』 (大澤 文孝、浅居 尚 著、日経 BP、2020 年 6 月刊) は、Docker を題材に、自分でコンテナ環境を構築できるようになることを目標にした入門書です。版元の紹介文は本書を技術解説書というより技術実践書と位置づけ、Docker のインストールから Web サーバーの起動、永続化、ネットワーク、コンテナイメージへと順番に学び、さらに Docker Compose と Kubernetes までを扱うと案内しています。インフラ技術者の最初の 1 冊として書かれ、アプリケーション開発者がインフラを学ぶ本としても勧められています。
全 9 章の構成、5 分の Web サーバー起動から Kubernetes まで
目次は全 9 章です。第 1 章「コンテナの仕組みと利点」で考え方を押さえ、第 2 章「Docker を利用できるサーバーを作る」で演習の土台を用意してから、第 3 章「5 分で Web サーバーを起動する」で最初の動作を確かめます。第 4 章「Docker の基本操作」、第 5 章「コンテナ内のファイルと永続化」、第 6 章「コンテナのネットワーク」と、1 つのコンテナを扱うための基本を固めたあと、第 7 章「複数コンテナをまとめて起動する Docker Compose」で複数のコンテナの組み合わせへ進みます。第 8 章「イメージを自作する」で自分のイメージを作る段階に入り、第 9 章「Kubernetes を用いたコンテナ運用」で締めくくります。紹介文によれば、Kubernetes は学習用の Minikube で試し、最終的に Amazon EKS でコンテナを実行するはじめの一歩までが説明されています。先に動かしてから、保存、通信、複数構成、自作へと 1 段ずつ広げる並びです。
コンテナが軽く速く起動する仕組み
コンテナは、仮想マシンのように OS 全体を丸ごと用意するのではなく、ホストの Linux カーネルを共有したまま、プロセスごとに見える範囲と使える資源を区切って動かす仕組みです。この区切りを支えるのがカーネルの Namespace と cgroup で、前者がファイルシステムやネットワーク、プロセス番号の見え方を分け、後者が CPU やメモリの使用量を制限します。OS の起動を伴わないため数秒で立ち上がり、アプリケーションと依存ライブラリをイメージとして固めて配れるので、開発環境と本番環境の差による不具合を減らせます。一方で、コンテナの中のファイルは消えるのが前提のため、データを残すには永続化の仕組みが、コンテナ同士をつなぐにはネットワークの設計が必要になります。本書も第 5 章と第 6 章をこの 2 点に充てており、基本操作の次に学ぶ題材として位置づけています。さらに台数が増えると、どのサーバーで何を動かし、落ちたらどう立て直すかを自動で管理する コンテナオーケストレーション の仕組みが必要になり、Kubernetes はその代表的な基盤です。
2020 年刊の手順で学ぶ前提と、向いている読者
読み進めるうえでは、ターミナルでコマンドを打つことや、サーバーにログインしてファイルを編集することに抵抗がないと進みが速くなります。本書は 2020 年時点の手順で書かれているため、Docker や Kubernetes のインストール方法やコマンドの細部は、手を動かす際に各公式ドキュメントで確かめながら進めるのが確実です。また Kubernetes は最後の 1 章で入口まで扱う構成なので、クラスターの設計や本番運用を深く学びたい人は、本書のあとに Kubernetes を主題にした本へ進むことになります。インフラ分野の本をどの順に読むか迷っている場合は、インフラ / クラウド本ガイド で全体の流れを確認しておくと選びやすくなります。
コンテナという言葉は知っているものの自分で環境を組んだことがないインフラ技術者や、開発したアプリケーションを動かす仕組みを手元で理解したい開発者にとって、1 台のコンテナから Compose、Kubernetes の入口までを手順どおりにたどれる本書は、最初の 1 冊として投じた時間を回収しやすい一冊です。章の順に手を動かしていけば、コンテナで何ができて何に注意すべきかを、自分の言葉で説明できる段階まで進めます。
言及した記事 (15 件)
【個人開発】ラーメン待ち時間シェアアプリ「ちゃくどん」を作ってみました【Rails, Hotwire, AWS, Docker, GitHubActions】
♡ 181Rails, AWS, 個人開発, GitHubActions, Hotwire30代元食品工場長がフードシェアサービスのポートフォリオを約2週間で開発した話
♡ 85Rails, CircleCI, Docker, 初心者向け, ECS1年目にやったおすすめ教材
♡ 32初心者, 教材, 初学者向け, Udemy, 駆け出しエンジニア【2021年末最新版】GCP Professional Cloud Architect 合格体験記
♡ 7Cloud, Udemy, Udemy学習応援, GoogleCloudDockerでRails,Postgres,ElasticSearchの開発環境を構築する方法
♡ 6Rails, PostgreSQL, Elasticsearch, DockerRuby on Rails ✕ Docker✕MySQL開発中のアプリにDockerとdocker-composeを導入
♡ 4Ruby, MySQL, Docker, docker-compose, Rails6DockerfileでJava環境を構築する
♡ 3Java, 環境構築, Docker, dockerfileMacBook Pro M1でDockerの環境構築
♡ 3Docker, データ分析Docker, Docker Compose, Kuberenetes用語ベース入門
♡ 2Rails, Docker, kubernetes, container, docker-composeRaspberryPi4とDockerでグローバルアクセス可能な自前音楽ストリーミングサービスを作る【ざっくり解説】
♡ 1RaspberryPi, Docker, docker-compose
この本は技書デッキのカードです (備え 4 / 流儀: 回復は備えにも) 図鑑でこの本を見る
この本に興味がある方におすすめ
関連する本
大澤 文孝 の他の書籍
関連記事
OS / 低レイヤー本ガイド - コンピューターの仕組みを学ぶ技術書の選び方
OS、コンパイラー、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。
Linux 本ガイド - コマンドライン / しくみ / 性能の 3 層で選ぶ技術書
Linux を学ぶ技術書の選び方を 3 層 (コマンドラインの操作 → カーネルのしくみ → 性能と運用) で整理。新しい Linux の教科書や [試して理解] Linux のしくみなどの定番書の使い分けと、学ぶ順番を解説します。
インフラ / クラウド本ガイド - AWS や Docker を本で学ぶ
クラウドインフラ、コンテナ、IaC を学べる技術書の選び方と学習順序を紹介。インフラ本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
関連用語
コンテナ
アプリケーションとその依存関係をパッケージ化し、環境に依存しない一貫した実行環境を提供する仮想化技術
コンテナオーケストレーション
コンテナのデプロイ、スケーリング、ネットワーキングを自動管理するプラットフォーム
Init コンテナ
Kubernetes でメインコンテナの起動前に初期化処理を実行する特殊なコンテナ
Dev Container
Docker コンテナ内に開発環境を定義し、チーム全員が同一の環境で開発できる仕組み
Kubernetes
コンテナのデプロイ、スケーリング、管理を自動化するオープンソースのオーケストレーションプラットフォーム
ECS
AWS のマネージドコンテナオーケストレーションサービスで、Docker コンテナを実行 / 管理する