ITエンジニアになる! チャレンジDocker仮想化環境構築入門

概 要

Dockerは、インフラエンジニアにとって様々なメリットのあるコンテナ型仮想化プラットフォームです。最初はとっつきにくいかもしれませんが、使い方がわかると非常に便利なソフトに化けます。本書は、インフラエンジニアになりたい方に向けて、Dockerを実際に動かし、その使い方や便利さを体験できる入門書です。基礎から、AWSへのDockerホストのプロビジョニングを通して、インフラエンジニアリングという仕事を体験できます!

著者 小島一也
価格 本体3000円(税別)
ISBN 978-4-7980-5452-0
発売日 2018/8/21
判型 B5変
ページ数 432
CD/DVD
ダウンロード
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

0 インフラエンジニアになる!

0-1 インフラエンジニアってどんな仕事?

インフラエンジニアの仕事とは

インフラエンジニアに必要とされるスキル

インフラエンジニアの立ち位置

0-2 インフラエンジニアあるある

インフラ障害時の復旧対応

インフラ環境は正常に動作しているのが当たり前

障害に備えた環境構築

1 Dockerを使ってRails開発環境を構築せよ

1 Dockerについて理解しよう

1-1 Dockerとは何かを理解しよう

Dockerとは

VirtualBoxとは?

コンテナのアプリケーションはどこで実行されるのか?

Dockerがプラットフォームと呼ばれる理由

1-2 従来の仮想化との違いを理解しよう

Dockerを使うメリットとデメリットは?

コンテナとOSの関係について

構成管理ツールとは?

2 Dockerをインストールしよう

2-1 Dockerのソフトウェアの種類

Dockerのエディションについて

Dockerのバージョンについて

Linux OSでDockerを動かすには?

2-2 Docker for Macのインストール

Docker for Macのダウンロード手順

Docker Storeとは

Docker for Macのインストール手順

Dockerインストール後の動作確認について

2-3 Docker for Windowsのインストール

Docker for Windowsのインストール手順

LinuxコンテナとWindowsコンテナの動作モードの違いについて

2-4 WindowsへのDocker Toolboxのインストール

Docker Toolboxとは

Docker Toolboxのダウンロード

Docker Toolboxのコンポーネントについて

3 コンテナの起動方法を

理解しよう

3-1 コンテナの実行と実行時の動作

docker runコマンド実行による動作

docker runコマンドについて

3-2 Docker Hubとは

Docker Hubの概要

公開されているイメージを検索する

Docker Hubのイメージの見方について

Docker Hub以外のレジストリ

Docker Hub以外のレジストリについて

3-3 Dockerイメージとは

Dockerイメージとは

Dockerイメージの構造について

Union File Systemのメリット

3-4 コンテナ起動時のコマンド指定

コンテナでのコマンド実行

コンテナ起動時にコマンドを指定しなかった場合の動作について

3-5 Dockerイメージの管理

ダウンロード済みDockerイメージの一覧表示について

Dockerイメージの削除コマンドについて

docker rmiコマンドのエラーについて

Dockerイメージのダウンロード時に流れるメッセージの意味について

3-6 Dockerfileとは

Dockerfileとは

Dockerfileの記述方法

Dockerfileに命令を記述する順序や、レイヤ数について

3-7 Dockerイメージのビルド

Dockerfileによるビルド方法

docker buildコマンドで使用されるDockerfileとビルドコンテキストについて

3-8 Docker Hubのアカウント作成

Docker Hubのアカウント登録

Docker IDの用途について

3-9 Docker Hubへのイメージのpush方法

Docker Hubへのイメージのpush手順

docker loginコマンドによるレジストリサービスへのログイン

Docker Hub以外のレジストリサービスへのログインについて

docker tagコマンドによるイメージへのタグ付け

docker pushコマンドによるレジストリへのイメージのpush

リポジトリのPublic、Privateの違いについて

3-10 nginxコンテナの実行とデタッチドモード

nginxコンテナの起動

Docker Toolboxを使用している場合の、仮想マシンのIPアドレス

nginxコンテナの起動時の動作について

3-11 ローカルのファイル/フォルダをコンテナに共有する

ローカルのファイル/フォルダをコンテナに共有する

コンテナ実行の失敗について

コンテナの削除失敗について

3-12 DockerfileのCOPY命令、ADD命令について

nginxの設定ファイルを変更してイメージに含める方法

DockerfileのCOPY命令とADD命令の違いについて

nginxのサービス再起動について

3-13 コンテナの状態を知る

Dockerコンテナのライフサイクルとは

Dockerコンテナの様々な状態について

状態のステータス遷移について

コンテナの状態の確認

作成したコンテナの確認について

3-14 コンテナへのシェル接続

コンテナ起動時に付けるオプションについて

docker attachコマンドを使用したシェルへの接続

attachしたコンテナのシェルをexitコマンドで抜けた際の動作について

docker execコマンドを使用したシェルへの接続

docker attachコマンドとdocker execコマンドのシェル接続の動作の

違いについて

3-15 コンテナを元にしたイメージ作成

コンテナのコミットとは

コミットの使い道

コンテナの状態をコミットしてイメージを作成する

3-16 コンテナのリンク機能

コンテナのリンクとは

linkフラグの使い道

リンク機能の動作確認

4 手動で行うビルドの手間を

なくして、自動化しよう

4-1 Automated Buildの概要

Automated Buildとは

Automated Build(自動ビルド)の仕組み

4-2 GitHubのアカウント作成とリポジトリの作成

GitHubの概要

GitHubへのアカウント登録とリポジトリ作成

gitコマンドのインストール

4-3 Automated Buildの設定

Docker HubへのAutomated Build(自動ビルド)の設定

GitHubにリンクする際の選択肢について

4-4 Automated Buildの実行

gitの初期設定

リポジトリの初期設定

GitHubのリポジトリを使い始めるには

gitの操作について

Dockerfileの作成とPush

自動ビルドの状況確認について

5 Docker Machineを使用してDocker用の仮想マシンを

作成しよう

5-1 Docker Machineとは

Docker Machineとは何か

Docker Machineで仮想マシンを立ち上げる際に必要な

仮想化ソフトウェア

Docker Machineで使用する仮想化ソフトウェアについて

5-2 Docker Machineを使用したDockerホストの管理(VirtualBoxドライバを使用する場合)

docker-machineコマンドの使用方法

docker-machineコマンドで起動したDockerホストを使用するには

Docker Machineで起動したnginxコンテナにアクセスできない理由

5-3 Docker Machineを使用したDockerホストの管理 (Hyper-Vドライバを使用する場合)

Docker for WindowsでDocker Machineを使用する場合の違い

AdministratorでDocker Machineを実行する方法について

hello-worldコンテナを起動できなかった原因について

5-4 Amazon Web Servicesのアカウントを作成しよう

Amazon Web Services(AWS)のアカウント作成

5-5 AWSへのDockerホストのプロビジョニング

IAMを使用したユーザーの作成

Docker Machineで使用するAWSユーザーの作成について

アクセスキーの設定

アクセスキーの設定方法について

EC2インスタンスで起動しているコンテナへのアクセスについて

5-6 Google Cloud Platformのアカウント作成

Google Cloud Platform(GCP)のアカウント作成

5-7 GCPへのDockerホストのプロビジョニング

IAMを使用したサービスアカウントの作成

Docker Machineで使用するサービスアカウントの作成について

Docker Machineでインスタンスを削除する

6 Dockerのネットワークを

設定してコンテナ間の

ネットワークを構築しよう

6-1 デフォルトのブリッジネットワークとユーザー定義の

ブリッジネットワーク

ブリッジネットワークとは何か

bridgeネットワークにおいてコンテナ名で名前解決する方法について

6-2 ノンネットワークとホストネットワーク

ノンネットワーク、ホストネットワークとは何か

ノンネットワークの設定

ノンネットワークの割り当てが失敗した理由について

ホストネットワークの設定

6-3 スタンドアローンSwarmのオーバーレイネットワーク

オーバーレイネットワークとは

スタンドアローンSwarmと今回作成する環境構成について

マルチホストネットワーク環境の各ホストの役割について

Swarmクラスタの作成

スタンドアローンSwarmの動作状況の確認について

オーバーレイネットワークの作成

オーバーレイネットワークをSwarmクラスタ全体に反映する方法

オーバーレイネットワークを介したエージェントノードからマスターノードへのアクセス

Swarmクラスタでコンテナを実行する際の注意点

7 Dockerのファイル管理に

ついて理解しよう

7-1 Dockerのファイル管理の概要

Dockerコンテナ起動後に作成されたファイルやファイルの修正について

Dockerのマウントタイプの種類について

マウントタイプの使い分けについて

7-2 volumeを使ってみよう

volumeの作成、確認、削除コマンドについて

volumeのマウント方法について

既に存在するディレクトリへのvolumeのマウントについて

元々コンテナに存在するディレクトリへvolumeをマウントした場合の

動作について

読み取り専用でのvolumeのマウントについて

7-3 Bind Mountを使ってみよう

Bind Mount(バインドマウント)の設定方法

-vオプション、--mountオプションの使い分けについて

コンテナのバインドマウントの設定を確認する方法

読み取り専用でのバインドマウント

バインドマウント使用時の注意点について

7-4 tmpfsを使ってみよう

tmpfsの設定方法

メモリが不足してしまった場合の動作について

tmpfs使用時のオプション

8 複数の役割のコンテナを

まとめて起動しよう

8-1 Docker Composeの概要

Docker Composeとは何か

YAMLとは

Docker Composeでアプリケーション実行環境を立ち上げる手順

docker-compose.ymlの記述方法

servicesの下のサービス名について

volumesの設定について

docker-composeで起動したコンテナのコンテナ間通信について

8-2 Docker Composeを使用したRuby on Railsの

開発環境構築

構築するRails開発環境について

Rails実行環境のイメージを作成するためのDockerfileの作成

Gemfileの作成

Gemfile.lockの作成

docker-compose.ymlの作成

先輩のレビューによる指摘箇所

ビルドの実行とRailsのプロジェクトの作成

Railsで使用するデータベースの設定と作成

docker-compose up実行後の状態について

docker-compose upで立ち上げたコンテナが停止してしまった原因について

Railsのscaffoldの機能を使用したユーザー名管理機能の作成

docker-composeコマンドを使用したコンテナの停止、削除

8-3 Docker Composeを使用したDjangoの開発環境構築

構築するDjango開発環境について

Django実行環境のイメージを作成するためのDockerfileの作成

requirements.txtの作成

docker-compose.ymlの作成

Djangoプロジェクトの作成

Djangoのデータベース設定とWebサーバーの起動

2 RailsコンテナをAWSにプロビジョニングせよ

9 Swarmモードによる

クラスタ構成の構築

9-1 Docker Swarmの概要

Swarmモードとは

Swarmモードのクラスタ構成について

Swarmモードのクラスタリング構成について

Swarmモードのオーケストレーション機能について

9-2 Swarmクラスタの作成

作成するSwarmクラスタの構成について

Swarmクラスタを組む仮想マシンの作成

Swarmクラスタの作成

docker swarm joinコマンドについて

9-3 サービスとタスク

Swarmモードにおけるサービスとは

Swarmモードにおけるタスクとは

サービスとタスクのイメージ図

サービスの作成

タスクの割り当て状況の確認方法について

9-4 サービスの管理コマンド

サービスの作成コマンド

サービスの更新コマンド

サービスのロールバックコマンド

サービスの詳しい情報を表示するコマンド

サービスで作成されたタスクの情報を表示するコマンド

docker service psコマンドの出力結果について

サービスの削除コマンド

タスクの割り振り先を指定する方法について

特定のノードにタスクを割り振る方法について

9-5 ルーティングメッシュ

ルーティングメッシュとは

Swarmロードバランサーを使用しない場合について

9-6 グローバルモードとレプリカモード

グローバルモードとレプリカモードとは

グローバルモードでサービスを作成する

9-7 Swarmモードの可用性

Swarmモードにおける可用性について

複数台構成のマネージャノードについて

マネージャノードの台数について

複数台構成のワーカーノードについて

ワーカーノードが一度停止した後に復旧した場合のサービスの動作について

9-8 ローリングアップデート

ローリングアップデートとは

ローリングアップデートのオプション

ローリングアップデートに関連するオプションについて

ローリングアップデートの実行

9-9 サービスのスケール

サービスのスケールとは

サービスのスケールコマンド

9-10 ノードのアベイラビリティ

ノードのアベイラビリティとは

アベイラビリティの変更

アベイラビリティ変更の用途

アベイラビリティを使い分ける用途

9-11 Composeファイルを使用したサービスの作成

Composeファイルを使用してサービスを管理するメリット

Composeファイルを使用してWordPressのサービスを作成する

Dockerにおけるスタックとは

10 AWSを使用したRails

アプリケーションのデプロイ

10-1 Docker Hubへのプライベートリポジトリ作成

プライベートリポジトリの作成

10-2 本番リリース用イメージの作成

本番リリース時に必要なイメージを検討する

本番環境で使用するデータベースサーバーについて

本番リリース用にRailsアプリケーションのイメージを作成する

10-3 セキュリティグループの作成

セキュリティグループとは

Swarmモード、Railsの動作に必要なセキュリティグループの設定

セキュリティグループの作成

10-4 AWSのEC2を使用したSwarmクラスタ作成

AWSへのSwarmクラスタ作成

10-5 RDSインスタンス作成

RDSへのインスタンス作成

10-6 RailsアプリケーションをAWSのSwarmノードで実行する

Railsアプリケーションで必要な環境変数の設定

サービス作成時の環境変数の設定について

サービス作成時のエラーメッセージについて

3 Kubernetesを試してみよう

11 Kubernetesとは

11-1 Kubernetesの概要

Kubernetesとは

Kubernetesのクラスタリング

Kubernetesの構成するコンポーネント

Kubernetesでのコンテナの扱い

11-2 ローカルにKubernetesの環境を構築しよう

Docker for Macのエッジ版をインストール

Docker for Mac エッジ版のKubernetesの機能を有効化

Kubernetesの動作を確認する

Kubernetesの動作確認について

11-3 Kubernetesでnginxを動作させてみよう

コマンドラインでのPodのデプロイ

Pod内のコンテナへのアクセス方法

Kubernetesのオブジェクトの削除方法

PR

秀和システム