めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

「Docker実践入門 ―― Linuxコンテナ技術の基礎から応用まで」が完成しました

表題の書籍が技術評論社より出版されることになりました。2015/9/26より一般販売開始予定です。執筆にご協力いただいた方々に改めてお礼申し上げます。

gihyo.jp

参考として、「はじめに」と「各章概要」を下記に引用しておきます。Dockerの基礎をしっかりと足固めしていただくための書籍です。

はじめに

 お待たせしました! 「Dockerを使って何かを始めたい」「Dockerでコンテナーは起動したけど中のしくみがよくわからない」 ── そんなあなたに向けたDockerの入門書がようやく完成しました。「コンテナーだから軽くて便利」「アプリケーションの可搬性が高まる」など、さまざまなうわさ話を耳にするDockerですが、まずは本書に目を通して、その技術的な特徴、そして、その背後にある「思想」を理解してください。

 Dockerは、アプリケーションの実行に必要なファイルをすべてまとめた「コンテナーイメージ」を作成して、Linuxコンテナーでアプリケーションを実行する機能を提供します。しかしながら、Dockerの機能だけに注目していても、その実力は見えてきません。Dockerは、もともとは米dotCloud社が提供するPaaS(Platform as a Service)のサービスを実現するコンポーネントとして開発がスタートしました。その背後には、「継続的インテグレーション/継続的デリバリー」の実現を容易にして、サーバーシステムの運用を根本から変革しようという大きな目標があります。その本質を理解することで、Docker本来の効率的な活用法が自然にわかるようになります。本書では、「裏ワザ」的なカスタマイズ方法の解説は避け、できるだけシンプルで、技術的にも自然な活用法を中心に紹介しています。Dockerのようにシンプルで「イケてる」ツールは、まずはシンプルに使いこなすのが正解です。さまざまなシーンで気軽に活用する中で、自分なりのベストな使い方を発見してください。

 また、Docker内部のしくみに目を向けると、Linuxコンテナーを始めとするさまざまなLinux関連技術が活用されています。dm-thin(Device MapperのThin-Provisioningモジュール)を用いたイメージ管理など、Linux好きにはたまらなく興味深いしくみも隠されています。コンテナーイメージの階層構造など、外から見ているだけではわかりにくい点については、内部構造にまで踏み込んだ解説をしています。このような内部構造への知的好奇心からDockerに興味を持ったという、筆者と「同類」の方にも満足していただけることでしょう。

 Dockerを取り巻く環境は、今も急速に変化を続けています。本書では、参考として、KubernetesやAtomic Hostなどの関連ツール、あるいはoverlayfsやCRIUなどの新技術についても触れています。ただし、本書の中心は、あくまでもDockerそのものです。新たに登場するツールや技術の表面的な違いにまどわされず、その本質を理解するための基礎知識を本書を通して身につけていただけることを期待しています。

各章の概要

第1章 Docker入門

 Dockerを使いこなすための基礎知識として、Dockerの機能概要とDockerが必要とされる背景、とりわけ継続的インテグレーション/継続的デリバリーを実現するツールとしてのDockerの役割を解説します。「Dockerが実現を目指す世界」を知ることで、Dockerの機能を正しく理解して、より効果的に活用することが可能になります。また、Linuxコンテナーを中心とするDockerの基礎技術について、その概要を説明します。

第2章 Dockerの利用方法

 CentOS 7でDockerを動かしながら、コンテナーの起動方法、Dockerfileによるコンテナーイメージの作成、そして、Docker Hub /プライベートレジストリーの活用など、Dockerの利用方法を段階的に学びます。Dockerfileとシェルスクリプトを連携した活用法のほか、Gitと連携したコンテナーイメージの作成や複数のコンテナーをネットワークで連携する方法など、実践的活用に必須の知識をまとめて理解することができます。

第3章 dockerコマンドリファレンス

 dockerデーモンの起動オプションのほか、dockerコマンドのさまざまなサブコマンドについて網羅的な解説を行います。コンテナーイメージのヒストリー構造など、イメージ管理の内部的なしくみにも触れています。目的別にサブコマンドを分類してあるので、各項目のタイトルから「逆引き辞典」としても利用できます。コンテナーイメージの自動作成に使用する、Dockerfileの各種命令も解説しています。

第4章 Dockerの内部構造と関連ツール

 コンテナー内部のプロセス管理、ディスクイメージ管理など、Dockerの内部構造に目を向けながら、より実践的にDockerを活用するためのヒントを紹介します。また、Dockerに関連するツールとして、複数のホストLinuxを束ねて管理する「Kubernetes」、Docker専用のホストLinux環境を提供する「Atomic Host」を説明します。さらに、今後Dockerで正式採用される可能性のある技術として、「overlayfs」と「CRIU」を紹介しています。