Docker を開発環境・本番環境で 4 年以上使い続け、学び続けた経験を踏まえ、難易度や状況別に Docker のオススメ書籍を紹介します。
- Docker の入門 1 冊目に適した書籍
- Docker に関する発展的な内容の書籍
- ちょっとレガシーながら勉強になる書籍
の 3 つに分けて順に書いていきます。
Docker の入門 1 冊目に適した書籍
「Docker を学ぶための本を紹介してほしい」と私が言われたら、まずは次に紹介する 2 冊のどちらかをオススメします。
プログラマのためのDocker教科書 第2版 インフラの基礎知識&コードによる環境構築の自動化
難易度: ★
非常に初心者向けの Docker の入門書です。
タイトルに書かれている通り、ネットワークや Linux といったインフラの基礎知識についても解説されており、比較的少ない前提知識で読むことができます。
Docker の基礎を身に着ける上で必要十分な内容となっており、インフラにあまり強くない方が Docker をサクッと学びたいという場合はこの 1 冊がオススメです。
コンテナを本番運用するには物足りない内容になっているので、本番運用を見据えて学びたい場合は次に紹介する『Docker/Kubernetes 実践コンテナ開発入門』を入門書として選んだ方がいいかもしれません。
Docker/Kubernetes 実践コンテナ開発入門
難易度: ★★
Docker の基礎から始まり、Kubernetes についてもかなりのページを割いて解説されている書籍です。
“実践” というタイトルの通り、
- コンテナのロギング
- イメージの軽量化
- セキュリティ
など、コンテナ本番運用で必ず必要になる知識も幅広く解説されており、この 1 冊の内容さえ身に付ければ、ある程度コンテナを使いこなすことができるでしょう。
ネットワークや Linux の基礎知識がある方や、本番運用を見据えて Docker について学びたい方は、上記の『プログラマのためのDocker教科書 第2版』よりもこちらの書籍がオススメです。
Docker に関する発展的な内容の書籍
Docker の基礎を理解した次のステップで読むべき書籍を紹介します。
※ Kubernetes に関する書籍は別記事で紹介予定です。
Dockerによるアプリケーション開発環境構築ガイド
難易度: ★★
Docker の基本を理解している方に向けた、Docker を利用した開発環境の構築について解説した書籍になります。
- Baseimage-docker などを利用し、コンテナ内で複数のプロセスを動かす方法
- Docker を使った開発環境で、クラウドとローカル環境をどのように接続するか
など、他の書籍では見られない内容が解説されています。
Docker を利用する上で、開発環境と本番環境では必要になる知識や工夫が全く異なります。 この書籍は開発環境について詳しく解説したものであり、本番運用についてはあまり詳しく書かれていないので、その点はご注意ください。
Docker の基本を身に付けた上で、ちょっとマニアックな知識をつけたい方にはオススメです。
Docker実践ガイド 第2版
難易度: ★★★
Docker の基本を身に付けた方が、その仕組みなどをより深く学ぶための書籍です。
- 名前空間によるプロセスなどの分離
- CPU やメモリ、ディスク I/0 のコンテナへの割り当て
- GUI アプリケーション用のコンテナ
- コンテナでの DVD・サウンドプレイヤの利用
など、他の書籍では解説されていないような内容も含めて詳しく書かれています。
また、Docker EE についてこれほど丁寧に書いている書籍は他にありません。
ある程度 Docker を使った経験がある方でも多くの学びが得られる本なので、Docker についてもう一歩詳しくなりたいときには是非手にとってみてください。
Windowsコンテナー技術入門
難易度: ★★
Windows コンテナについて解説した数少ない書籍の 1 つです。
Linux 上のコンテナとの違いに始まり、Azure での利用方法まで解説されています。
現状、特に制約がない限り Windows コンテナを使う理由はないので、どうしても Windows コンテナを使う必要がある場合に読みましょう。
Windows コンテナについてより新しい情報を得るには、『Windows版Docker&Windowsコンテナーテクノロジ入門』という書籍も参照した方がいいかもしれません。
ちょっとレガシーながら勉強になる書籍
Docker
難易度: ★★
オライリーの Docker に関する書籍です。
さすがオライリーの書籍だけあり、Docker の基本だけでなく、
- ロギング・モニタリング
- ネットワーク
- セキュリティ
などについて非常に詳しく解説されています。
ちょっと古い書籍にはなりますが、Docker についてより詳しく学びたい場合に参照してもいいかもしれません。
ただし、他の書籍にも言えることですが、Docker の内部の仕組みは年々変わっており、最近の Docker とは異なる内容が解説がされている場合もあるのでご注意ください。