Docker実戦活用ガイド
マイナビ
著者:吉岡恒夫
監修:paiza
Preface はじめに
Chapter 1 Dockerとは
1.1 Dockerって何?
1.2 コンテナと仮想マシン
1.3 Dockerの歴史
1.4 Dockerのコンセプト
1.5 まとめ
コラム:DockerとGo言語
Chapter 2 Dockerのしくみ
2.1 Dockerの構成
2.2 コンテナのファイルシステム空間(chroot)
2.3 ファイルシステムの階層化
2.4 コンテナのリソース制御
2.5 コンテナの隔離(名前空間・ネームスペース)
2.6 まとめ
Chapter 3 Dockerのインストール
3.1 パソコン(Mac, Windows)でDockerを使う
3.2 インストーラの構成
3.3 Macでのインストール
3.4 Windowにインストール
3.5 Linuxでのインストール(Ubuntu)
3.6 まとめ
Chapter 4 Dockerを使ってみよう(コマンド編)
4.1 Hello Worldを動かす
4.2 Linux(Ubuntu)を動かす
4.3 ウェブサーバを動かす
4.4 WordPressを動かす
4.5 コンテナの終了・削除
4.6 その他のDockerイメージ
4.7 まとめ
コラム:100人乗っても大丈夫?
Chapter 5 Dockerを使ってみよう(Kitematic(GUI)編)
5.1 Kitematicを使ってみよう
5.2 まとめ
Chapter 6 Dockerイメージの操作
6.1 Dockerイメージとは
6.2 Dockerイメージのダウンロード
6.3 コンテナからのDockerイメージ作成
6.4 Dockerfileからのイメージ作成
6.5 アプリケーションのDockerイメージ作成
6.6 DockerイメージをDocker Hubへアップロード
6.7 まとめ
コラム: マシンコンテナ v.s. アプリケーションコンテナ
Chapter 7 Dockerを使いこなす
7.1 コンテナの作成・実行
7.2 コンテナをバックグラウンドで実行
7.3 コンテナの削除
7.4 コンテナでシェルを実行
7.5 コンテナをホスト名を指定して実行
7.6 コンテナのデタッチ・アタッチ
7.7 実行中のコンテナにシェルで入る
7.8 コンテナの一時停止・再開
7.9 コンテナの実行ユーザを指定
7.10 コンテナの作業ディレクトリを指定
7.11 コンテナにホストのファイル・ディレクトリをマウント
7.12 コンテナでulimitによるリソース制限
7.13 コンテナのCPU制限
7.14 コンテナのメモリ使用量制限
7.15 コンテナのプロセス数の制限(fork爆弾対策)
7.16 コンテナとDockerホスト間でのファイルコピー
7.17 コンテナのログ(出力)の確認
7.18 ユーザネームスペースの利用
7.19 まとめ
Chapter 8 複数のDockerを使う(Docker Machine, Docker Swarm, Docker Compose)
8.1 複数のDockerホストを管理するためのツール
8.2 Docker Machine
8.3 Docker Swarm
8.4 Docker Compose
8.4 まとめ
Chapter 9 Dockerをクラウドで使う(Docker Cloud)
9.1 Docker Cloudとは
9.2 Docker Cloudのアカウント作成
9.3 クラウドサービスとのリンク
9.4 Dockerホストの作成
9.5 スタックの作成
9.6 まとめ
Chapter 10 DockerとJavaScriptでウェブサービスを作る(簡易オンラインジャッジシステム)
10.1 オンラインジャッジシステムとは
10.2 オンラインジャッジシステムの6つの条件
10.3 簡易オンラインジャッジシステム構築
10.4簡易オンラインジャッジシステムを使ってみる
10.5 簡易オンラインジャッジシステムの課題
10.6 まとめ
コラム:アイソモーフィックJavaScript
Chapter 11 Dockerを利用した実運用ウェブサービス構築事例(paizaオンラインジャッジシステム)
11.1 Dockerとpaiza
11.2 CPUのリソース管理
11.3 メモリ使用量の制限
11.4 プロセス数の制限
11.5 ディスク使用量の制限
11.6 Dockerイメージ読み込みの高速化
11.7 コンパイル結果の再利用
11.8 負荷分散・冗長化
11.9 優先度制御
11.10 まとめ
Chapter 12 paizaの実行環境APIを使いウェブサービスを作る(簡易オンラインジャッジシステム)
12.1 実行環境API
12.2 プロジェクトの作成
12.3 ブラウザでのコード実行時の処理の作成
12.4 サービスを動かす
12.5 まとめ
Chapter 13 Dockerの内部
13.1 Dockerディレクトリ
13.2 cgroups
13.3 ネームスペース
13.4 まとめ
おわりに
索引