タダです。
今回はDocker実践活用ガイドの8章を読んだ内容をまとめていきます。 ※記事は理解ができるたびに何度もアップデートしていこうと思います。 book.mynavi.jp
なお、副教材としてドットインストールも使っていこうと思います。
目次
なお、各章の内容は次の通りです。
- 1章 Dockerとは
- 2章 Dockerの仕組み
- 3章 Dockerのインストール
- 4章 Dockerを使ってみよう(コマンド編)
- 5章 Dockerを使ってみよう(Kitematic(GUI)編)
- 6章 Dockerイメージの操作
- 7章 Dockerを使いこなす
- 8章 複数のDokcerを使う(Docker Machine、Docker Swarm、Docker Compose)
- 9章 Dockerをクラウドで使う(Docker Cloud)
- 10章 DockerとJavaScriptでウェブサービスを作る(簡易オンラインジャッジシステム)
- 11章 DOckerを利用した実運用ウェブサービス構築事例(paizaオンラインジャッジシステム)
- 12章 paizaの実行環境APIを使いウェブサービスを作る(簡易オンラインジャッッジシステム)
- 13章 Dockerの内部
8.1
- Dockerでは複数のDockerホストを管理するための以下のツールを提供している
- Docker Machine : Dockerホストを構築するためのツール
- Docker Swarm : 複数のDockerホストをまとめる(クラスタリングする)ツール
- Docker Compose : 複数のコンテナを利用するサービスを管理するツール
8.2
- Docker MachineはDockerホストを構築するためのツール
- DockerホストとsなるHWを用意し、その上にOS、その上にDocker構成する必要がある
- Docker Machineは、Dokcerホストの構築や管理を行う(Virtualbox,AWS,Azureなどの仮想マシンの構築ができる)
- 新しくDockerホストを構築するには、
docker-machine createを使い、Virtualboxを使う場合、--driver virtualboxオプションを使うdocker-machine create --driver virtualbox virtualbox-host
- EC2の場合、アクセスキーとシークレットアクセスキーを設定しておく必要がある
docker-machine create -d amazonec2 --amazonec2-region <region name> --amazonec2-instance-type <instance type> --amazonec2-root-size <Disk Size> --amazonec2-vpc-id <VPC ID> <HostName>
- 管理しているDockerホストの確認は、
docker-machine lsで行う - 環境変数は、
docker-machine env ホスト名で確認できる - Dockerホストの再起動は、
docker-machine restartで行う - DockerホストのIPアドレス確認は、
docker-machine ipで行う - DockerホストへのSSHは、
docker-machine sshで行う
8.3
- Docker Swarmは複数のDockerホスト(Swarmノード)をまとめてクラスタを作るためのツール
- Swarmクラスタでは、SwarmマネージャがDockerホストと同様にDockerサーバとして動作する
- DockerクライアントからはSwarmマネージャにコンテナ実行などのコマンを送ることができる
- Swarmクラスタは、外部からは一台のDockerホストと同じように見えるため、Dockerホストに対応したツールとの連携が容易になっている
- Swarmクラスタ内で、独自のネットワーク(オーバーレイネットワーク)を構築でき、これにより異なるDockerホストでもお互いに通信可能
- Swarmクラスタは、クラスタ全体を管理するSwarmマネージャ、Dockerホストごとに動作して個々のDockerホストを管理するSwarmエージェント、クラスタの状態を保持するkey-valueストアで構成される
- key-valueストアとして、Consulを利用する
8.4
- Docker Composeは複数のコンテナを利用するアプリケーションを管理するためのツール
docker-compose.ymlにアプリケーションで利用するコンテナの構成情報を記述しておくことで、ここのコンテナを手動で操作することなくアプリケーション全体をまとめて構築・管理できる
- WordPressを構成するために、WebとDBに関する定義ファイルを作成すると、以下のようになる
version: '2'
services:
web:
image: wordpress
ports:
- "8080:80"
environment:
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_HOST: db
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: password
- アプリケーションの起動は、
docker-compose upで行う- バックグランドで起動する場合、-dオプションを指定する
- サービスの終了は、
docker-compose down
- スケールアップする場合、
docker-compose scaleで行う
AWSでDocker Machine,Docker Swarm,Docker Compose動かしてみたら別の記事で作りたい。。 次回は9章です。