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