Docker コンテナ開発・環境構築の基本

Docker コンテナ開発・環境構築の基本の表紙
クラウド / インフラ / DevOps
著者:
市川 豊(イチカワ ユタカ)
出版社:
インプレス
出版日:
2021年07月27日頃
ISBN:
9784295011736
シリーズ:
impress top gear impress top gear
在庫:
在庫あり
5(1 件 / 楽天ブックス)
中級者向け
Dockerコンテナ環境構築開発ハンズオンインフラアプリケーションDevOpsCI/CDマイクロサービス

なぜ注目されているか

言及数
152位
総合237位 ↓ 3 ランクダウン 言及 19 件・うち記事 17 件を掲載
051020222023202420252026

書籍紹介

本書は、アプリケーションエンジニア、インフラエンジニア、オペレーションエンジニアの方々を対象に、コンテナアプリケーション開発の全体を把握し、基本をマスターすることを目標として執筆されています。コンテナアプリケーション開発において必要となる技術の理解を深めるため、実際に手を動かして学ぶ形式を採用しています。これまで著者自身がエンジニアとしてコンテナ技術に携わり、そこで得た知見や経験を体系化し、専門学校、企業向けトレーニング、勉強会でハンズオンを中心に教えてきたノウハウを、一冊の書籍に凝縮しました。

技書の森解説

Docker でイメージを作るところから、Kubernetes でアプリケーションを動かし、CI/CD の仕組みに載せるところまでを、一つのアプリケーションの流れとして手を動かしながら通す入門書です。『Docker コンテナ開発・環境構築の基本』 (市川 豊 著、インプレス、2021 年 7 月 27 日発売) は impress top gear シリーズの一冊で、版元はアプリケーションエンジニア、インフラエンジニア、オペレーションエンジニアを対象に、コンテナアプリケーション開発の全体を把握して基本を身につけることを目標にしていると案内しています。著者は官公庁のシステム基盤を中心にサーバーの設計構築と運用保守、Web システム開発を担当してきた技術者で、専門学校や企業向けトレーニング、勉強会でハンズオンを中心に教えてきた内容を体系化したと版元の紹介文にあります。

全 7 章の構成、Build / Ship / Run から GitOps まで

目次は全 7 章と付録です。第 1 章「コンテナの世界に飛び込む前に」で仮想化の仕組みとコンテナイメージ、「Build/Ship/Run」という考え方を整理し、第 2 章で Docker 環境をセットアップします。第 3 章は「コンテナアプリケーション開発のライフサイクル」として、イメージビルド、イメージレジストリ、コンテナ実行を Build、Ship、Run の順に扱います。後半は第 4 章「コンテナオーケストレーション」で Kubernetes のアーキテクチャとリソース、環境のセットアップに進み、第 5 章で kubectl コマンドとマニフェストの管理を通じて Kubernetes 上でアプリケーションを動かします。第 6 章は Skaffold を利用したローカル開発環境、第 7 章は継続的インテグレーションと継続的デリバリーで、CIOps と GitOps の違いを押さえたうえで CI 環境と CD 環境を構築し、GitOps を実行するところまで進みます。付録には Docker コマンド、Helm コマンド、Dockerfile 命令の一覧が付いています。Docker の操作だけで閉じず、Kubernetes と CI/CD までを一続きの開発工程として並べた構成と読めます。

コンテナとオーケストレーションを一冊でつなぐ意味

コンテナは、ホストの OS カーネルを共有しながらプロセスの見える範囲と使える資源を区切る仕組みで、仮想マシンのように OS ごと起動しないぶん、軽く速く立ち上がります。開発で効くのは、アプリケーションと依存ライブラリをイメージとして固めることで、手元とテスト環境と本番の差を小さくできる点です。ただし、イメージを作って 1 台で動かせるようになっても、本番では複数のコンテナを配置し、落ちたら立て直し、更新を順に入れ替える仕事が残ります。これを受け持つのが コンテナオーケストレーション で、その代表が Kubernetes です。Docker の入門と Kubernetes の入門を別々の本で学ぶと、イメージを作る側の判断がクラスターでの動かし方にどう効くのかが見えにくくなります。本書が第 3 章のレジストリへの登録を挟んで第 4 章のオーケストレーションへ進む並びは、この継ぎ目を一冊の中で埋める意図に沿ったものと読めます。

Skaffold と GitOps を扱う後半の読みどころ

第 6 章の Skaffold は、ソースコードの変更を検知してイメージのビルドと Kubernetes へのデプロイを繰り返す開発用のツールで、コンテナを前提にした開発でも、手元でコードを書いてすぐ動作を確かめる短い往復を保つために使われます。第 7 章の GitOps は、Git リポジトリに置いたマニフェストを正として、クラスターの状態をそこへ合わせ続ける運用の考え方です。CI のパイプラインからクラスターへ直接変更を押し込む CIOps と比べると、誰がいつ何を変えたかが Git の履歴に残り、クラスター側の状態が宣言と食い違えば戻せるという利点があります。目次がこの二つを節として並べているので、デプロイの仕組みをどちらの考え方で組むかを比べながら読めます。

前提知識と刊行時期の注意、向いている読者

前提として、ターミナルでのコマンド操作と、Web アプリケーションの基本的な仕組みが分かっていると読み進めやすいはずです。刊行は 2021 年 7 月で、その後の変化、たとえば 2021 年 8 月に発表された Docker Desktop の利用条件の変更や、2022 年 5 月の Kubernetes 1.24 での dockershim の削除は、刊行時期から見て本書には織り込まれていません。コマンドの細部やツールの版は公式ドキュメントで確かめながら進める読み方が合います。版元のページには正誤表も掲載されています。一方、Dockerfile の書き方やイメージの最適化だけを深く掘りたい場合は、Docker に絞った本のほうが目的に近いでしょう。コンテナ化したアプリケーションを、作るところから Kubernetes に載せて継続的に届けるところまで、全体の地図を先に手に入れたいエンジニアにとって、工程を順に手を動かして通せる本書は、チームで導入を進める前の土台づくりに向いた一冊です。

言及した記事 (17 件)

この本は技書デッキのカードです (備え 16 / 気力 +5) 図鑑でこの本を見る

この本に興味がある方におすすめ

関連する本

関連記事

関連用語

共有: