タダです。
今回は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章です。