連載
» 2015年10月09日 05時00分 公開

Docker運用管理製品/サービス大全(2):OSSの管理ツールDocker Machine、Swarm、Compose、Kitematicの概要とインストール、基本的な使い方 (2/4)

[澤井健,株式会社NTTデータ]

Docker Machine、Swarm、Compose、KitematicによるDocker環境構築

 ここからはDocker Machine、Docker Swarm、Docker ComposeによるDocker環境構築手順を記載します。下記の手順のdockerコマンドなどは注釈がない限りは全てローカルのLinux環境から実行しております。

Docker MachineによるDocker環境の構築

 ローカルのLinux環境にDocker Machineをインストールします。

curl -L https://github.com/docker/machine/releases/download/v0.2.0/docker-machine_linux-amd64 > /usr/local/bin/docker-machine
chmod +x /usr/local/bin/docker-machine

 「docker-machine -v」コマンドを実行します。

 次に、EC2ドライバーを使用してAWSにDocker環境を作成します。

docker-machine create --driver amazonec2 --amazonec2-access-key "アクセスキー" --amazonec2-secret-key "シークレットキー" --amazonec2-region ap-northeast-1 --amazonec2-vpc-id "VPCのID" --amazonec2-ami "ami-50eaed51" dmec2

 AMIは「ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-20141125」を指定しています。

 続いて、作成されたDocker環境を確認します。

docker-machine ls
docker-machine env dmec2

 AWSのコンソールで作成されたインスタンスを確認します。

 コンテナーを動かすための引数を確認します。

docker-machine config dmec2

 コンテナーを実行します。

docker $(docker-machine config dmec2) run centos echo "hello hinemos"

 コンテナーの起動を確認します。

docker $(docker-machine config dmec2) ps -a

 下図は実行結果です。

 dmec2の停止・起動を行います。

docker-machine stop dmec2
docker-machine start dmec2

 最後に、dmec2の削除を行います。

docker-machine rm dmec2

Docker Swarmによるクラスター環境構築

 まず、「docker run swarm create」コマンドでクラスター構成を作るためのIDを取得します。

 次に、クラスター構成のマスターを作成するために、--swarm、--swarm-masterオプションに加え--swarm-discoveryオプションに「2.1」のクラスターIDを設定してdocker-machineを作成します。

docker-machine create --driver amazonec2 --amazonec2-access-key "アクセスキー" --amazonec2-secret-key "シークレットキー" --amazonec2-region ap-northeast-1 --amazonec2-vpc-id "VPCのID" --amazonec2-ami "ami-50eaed51"  --swarm --swarm-master --swarm-discovery token://SWARMのクラスターID dmec2master

 下図は実行結果です。

 続いて、クラスター構成のノードを作成するために--swarm、--swarm-discoveryオプション付けてdmec2node1を作成します。

docker-machine create --driver amazonec2 --amazonec2-access-key "アクセスキー" --amazonec2-secret-key "シークレットキー" --amazonec2-region ap-northeast-1 --amazonec2-vpc-id "VPCのID" --amazonec2-ami "ami-50eaed51"  --swarm --swarm-discovery token://SWARMのクラスターID dmec2node1

 同じ手順でdmec2node2を作成し、AWSコンソールからEC2インスタンスが作成されていることを確認します。

 「docker-machine ls」コマンドでクラスター構成が作成されていることを確認します。

 マスターノードの環境変数をコンソールにセットします。

eval "$(docker-machine env --swarm dmec2master)"

 docker infoコマンドでクラスター構成の情報を取得できます。

 コンテナーを作成します。

docker run -it -d centos /bin/bash

 「docker ps」コマンドでコンテナーが実行されたことを確認します。

Docker Composeによるクラスター環境構築

 まずは、Docker Composeをインストールします。

curl -L https://github.com/docker/compose/releases/download/1.2.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

 「docker-compose --version」コマンドでインストールされたか確認できます。

 次に、Docker Composeのタイムアウトを「600」に伸ばします。

export DOCKER_CLIENT_TIMEOUT=600

 続いて、Docker Composeの定義ファイル「docker-compose.yml」を作成します。

mkdir docker-compose
cd docker-compose
vi docker-compose.yml

 docker-compose.ymlの中身は下記のように記述します。

redis:
  image: redis
  ports:
   - 6379

 Docker Composeを実行します。

docker-compose up -d

 スケールアウトします。

docker-compose scale redis=2

 docker-compose psコマンドで、スケールアウトされたことを確認します。

 docker psコマンドで、どのノードで実行されているかを確認できます。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。