meta-something

論文とか研究とか趣味のネタとか

『プログラマのためのDocker教科書』感想

数か月前からちまちまDockerを調べては触ってきたのだけれど、そろそろ情報がまとまった書籍を元に知識を整理したくなったので読んでみた。

本書は、Linuxのコンテナ仮想化ツールであるDockerを使って、コードでインフラ環境を構築するための入門書です。開発環境や実行環境などインフラ構築「自動化」の経験がない開発者を対象に、おさえておきたいシステム基盤&インフラの基礎知識に加えて、Dockerによるインフラ構築と管理の方法をやさしく解説します。理解しにくいネットワークや仮想技術などのインフラの基礎概念を図解しながら、開発/実行環境を実際に構築することで、構成管理ツールを使ったインフラ構築の流れを解説していきます。

目次は以下の通り。

  1. おさえておきたいシステム/インフラの知識
  2. コンテナ仮想化技術とDocker
  3. Dockerのインストールと基本コマンド
  4. Dockerfileを使ったコードによるサーバ構築
  5. Dockerイメージの共有─Docker Registry
  6. 複数コンテナの一元管理─Docker Compose
  7. マルチホスト環境でのDocker運用─Docker Machine、Docker Swarm
  8. クラウドでのDocker運用

コンテナ型仮想化技術の難しい&細かい技術の記述は控えめに、インフラの基礎知識を簡単に前置きしたあと、実行環境の仮想化を実現するために「Dcokerをどう使えるか」がまとめてある。「Dockerで何ができて、何が嬉しいのか?」を知りたい入門者向けにはとても良い内容であり、特に1~4章はインフラの基礎知識とDockerの用例が実際のコマンドレベルで書かれているので、社内研修の教科書とかに使えるのでは?という印象を受ける。細かい内容はQiitaとか公式ドキュメントとか個人ブログを見ればもっと詳しく記述されている記事があるけれど、やはり全部まとめて書かれた書籍があることは大事。個人的に身内でDocker利用を布教したいと考えていたので、他人への紹介や参考書としても重宝しそう。

ただし、Docker周辺技術はあまりにも変化が早いので、既に一部記述が最新ではない部分があったりなかったり。本書は初版が2015年11月19日と約1年前なのだけれど、7,8章で触れられているクラスタ管理技術であるDocker Swarmについては、2016年6月末にDocker Engineと統合されてDocker Swarm Modeとしてより簡単にネットワークやサービスの構築が利用できるようになっている。

docs.docker.com

qiita.com

その部分は本書ではおまけのような扱いなので、あまり気にする必要はない(クラスタ管理するような人は、たぶん自分で調べられるだろうし)。特に前半~中盤のコアなDockerコマンド周辺はそうそう変化があるものではないだろう。 総じて、Dockerという技術を利用したいが何処から手を付ければよいのか…という人向けの教科書として良書である。