OSSの管理ツールDocker Machine、Swarm、Compose、Kitematicの概要とインストール、基本的な使い方:Docker運用管理製品/サービス大全(2)(2/4 ページ)
数多く台頭しているDockerの運用管理に関する製品/サービスの特長、使い方を徹底解説する特集。今回は、Docker社が開発しているDocker Machine、Docker Swarm、Docker Compose、Docker Kitematicの概要と使い方を解説する。
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.
関連記事
- 所要時間わずか10分で「Docker」を体験しよう――Azureで始めるDocker入門
2014年から急速に注目度が増しているコンテナー型仮想化技術「Docker」。すでに多くのLinuxで利用可能な技術ですが、次期Windows Serverでもサポートされる予定です。Dockerとはどのようなものなのか、一度、実際に触って体験してみてはいかがでしょうか。 - Linux/OSSに不慣れでも大丈夫! WindowsでDockerを扱う際のポイント
本連載第31回は「Azureで始めるDocker入門」を掲載しました。掲載後、すぐに「Docker 1.6」がリリースされたので、意図したわけではありませんが、タイムリーな記事になったと思います。今回は、その記事でも紹介した「Docker Client for Windows」をフォローアップします。 - Docker代替のコンテナーランタイム「Rocket」をCoreOSが公開
CoreOSがDocker代替のシンプルなコンテナーランタイムを公開。Dockerの当初の目的であるシンプルなコンテナーを目指すプロトタイプだ。 - Docker、そしてCloud FoundryとPaaSの価値とは
Docker人気を踏まえたとき、Cloud Foundryはどのように位置付けられるのか。PaaSの最終的な価値とは何なのか。AWSとの競合とは。Cloud Foundryの責任者である米PivotalのJames Watters氏に聞いた。 - レッドハットが発表したOpenShift Enterprise 3は「Dockerを知らなくても使える」基盤
レッドハットが2015年7月22日に国内発表したPaaS製品「OpenShift Enterprise 3」の最大の狙いは、Dockerを知らなくてもアプリケーションの開発・運用ができるようにすることだという。ここでは、レッドハットの日本法人の説明に基づき、OpenShift Enterprise 3を紹介する。 - 米グーグルのDockerコンテナ管理サービスが一般提供開始
米グーグルがGoogle Cloud Platform上で提供しているDockerコンテナオーケストレーション/管理サービス、Google Container Engineが2015年8月26日、ベータ段階を終了、一般提供が開始された。毎週20億以上のコンテナを立ち上げているグーグルの経験に基づくサービスだとしている。