ここからは、構築した環境を使ってさまざまな機能を試してみます。
Docker Swarmは予約済みのリソースを監視する機能を持っています。
まず、下記のようにCPUとメモリを予約済みにするdocker-compose.ymlを作成します。
redis: image: redis cpu_shares: 1 mem_limit: 128m ports: - 6379
上記のコンテナーを起動させます。
docker-compose up
docker infoコマンドでリソースの確認を行います。
まず、redisコンテナーを多重度2で動作させます。
次に、dmec2masterのサーバーにログインします。
docker-machine ssh dmec2master
続いて、dmec2masterサーバー上でredis-serverのプロセスをkillします。
ps -ef | grep redis kill -9 30322
下図は実行結果です。
CTRL-DコマンドでローカルのLinux環境に戻り、dockerコマンドでコンテナーのプロセスがなくなっていることを確認します。
docker-composeコマンドでコンテナーのプロセスのステータスが「Exit」であることを確認します。
この状態で1時間ほど放置しましたが、コンテナープロセスが自動復旧することはありませんでした。
docker-composeコマンドでコンテナーを再起動します。
docker-compose start docker-compose ps
下図は実行結果です。
まず、Docker Machineコマンドで作成したSwarm環境のMasterサーバーを停止させます。
次に、Docker MachineコマンドでSwarm環境を確認します。
続いて、dockerコマンドを実行しようとするとタイムアウトが発生します。
docker-composeコマンドを実行しようとするとタイムアウトします。
dmec2node1にログインします。
docker-machine ssh dmec2node1
dmec2node1上でdocker psを実行します。
dmec2node1上ではコンテナーが正常に動いていることを確認しました。
今回は、Docker社が開発するOSSの運用管理ツールを紹介しましたが、いかがでしたでしょうか。Kubernetesに比べるとコンテナーに対する機能は少ないですが、ホストに対する操作コマンドがあります。また、管理サーバーからホストのCPU/メモリの情報を取得可能です。
次回は、グーグルが開発するOSSの運用管理ツールKubernetes、flannel、cAdvisorについて解説します。
富山県出身。株式会社NTTデータに入社後、PostgresForestやHinemosの開発、保守、導入支援に携わり、今はHinemosのクラウドへの普及展開を進めている。休日は仕事を離れ、宝塚観劇のため日比谷や兵庫に訪れるなど趣味を満喫している。
Software Design plusシリーズ『Hinemos 統合管理[実践]入門』(共著:技術評論社)
Copyright © ITmedia, Inc. All Rights Reserved.