2017年5月13日

書評: 「Docker実践入門」

書誌情報: 中井悦司、「Docker実践入門」、技術評論社、2015, ISBN978-4-7741-7654-3

(本書は2015年9月に技術評論社Software Design編集部の池本様よりご恵贈いただきました。書評が大変遅れて申し訳ありません。)

Dockerは今やLinuxのエンジニアなら誰でも知っているコンテナ技術を稼動させるためのプラットフォームである。この本は2015年9月に出版されたもので最新の情報は反映されてはいないが、それでも内容については今でも読むに耐えるものが多く含まれている。

私自身はLinuxとは現在に至るまであまり親密な関係ではなく、研究開発にはもっぱらFreeBSDを使っている。コンテナといえばFreeBSDのJailという(いささか物騒な)名前の技術の印象が強く、単なるコンテナという観点ではDockerにあまり新しさは感じていない。

しかし、Dockerの魅力は、コンテナの利用の仕方に対して一定の定義を与えたところにあるのだと思う。用途を限定した単一機能サービスを提供するコンテナを組み合わせるサービスモデルと、開発結果と動作環境を併わせてコンテナに封じこめ継続開発を可能にする開発モデルを明確に打ち出し、それらを複数統合して管理し運用する(オーケストレーションの)ためのサポートツールを整備することで、それまでのハイパーバイザベースだった仮想マシンの管理の手間を省いて大規模運用を行えるようにしたのが、Dockerが流行り普及しつつある理由ではないかと思っている。

本書でもDockerの基本的な考え方に最初の第1章を割いて詳細に説明している。大規模な開発運用テスト環境の維持管理、デプロイの効率化、そして 運用サーバー基盤を変えずにアプリケーションの更新をしたいという3つの要請に対して、Dockerがどんな技術をもってそれに応えているのかが詳説されている。この章だけでも読んでおく価値はあるだろう。(この章はDockerを運用する上で不可欠なGitについても概要を説明している。)本書の第2章以降は、実際にDockerでどのようにしてコンテナを生成し連携させて動かすのかについての具体的手法が示されている。

Dockerを取り巻く技術は常に変化しており、最近はLinuxだけでなくWindowsやmacOSでの動作や、Moby projectという、よりOS間の可搬性を高めた動作環境の追求という方向へ向かっている(Publickeyによる2017年4月の記事)。書評が2年近く遅れた者がこういうことを書く 資格がないことを承知であえて書くなら、ぜひ本書をアップデートした第2版を読んでみたい。