Dockerでどのようなコンテナが起動しているか、コンテナの状態を確認するためにWebUIを提供するツールがいくつか開発されています。今回は、Shipyardをインストールし、コンテナの状態がどのように確認できるのか試してみました。
構成
- Ubuntu 14.04
- Docker 1.3.0
- Shipyard 2.0.3
Shipyardのインストール
Dockerデーモンの外部接続を許可する必要があるので、/etc/default/dockerのDOCKER_OPTSに以下の内容を追加します。
$ vi /etc/default/docker DOCKER_OPTS='-H tcp://0.0.0.0:4243/ -H unix:///var/run/docker.sock'
設定を反映させるため、Dockerを再起動します。
$ service docker restart
ShipyardはRethinkDBという分散データベースを使用しているので、こちらをインストールします。上のコマンドは、RethinkDB用のデータ格納コンテナ、下のコマンドはRethinkDBコンテナを起動しています。
$ docker run -it -d --name shipyard-rethinkdb-data --entrypoint /bin/bash shipyard/rethinkdb -l $ docker run -it -P -d --name shipyard-rethinkdb --volumes-from shipyard-rethinkdb-data shipyard/rethinkdb
Shipyardコンテナを起動します。今回はソケット通信によりホストの情報を取得するため、「-v /var/run/docker.sock:/docker.sock」を追加します。
$ docker run -it -v /var/run/docker.sock:/docker.sock -p 8080:8080 -d --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard
これらのコマンドを実行すると、DockerHubからイメージを取得して、コンテナを起動してくれます。※なお、Shipyard 2からはAgentは不要になったようです。
ブラウザから、以下のアドレスにアクセスすると、ShipyardのWebUIに接続することができます。
http://<your-host-ip>:8080
デフォルトでユーザ名「admin」、パスワード「Shipyard」でログインできます。
Engineの追加
初回ログイン時はDockerのホスト情報が登録されていないので、登録を行います。
「Engines」タブをクリックして、「ADD」ボタンをクリックします。
Name、Label、CPUs、Memoryは任意の値を入力し、Addressに「unix:///docker.sock」を入力し、「ADD」ボタンをクリックします。
登録ができると、以下のようにホスト情報が表示されます。
Containerの操作
設定に問題がなければ、「Containers」タブをクリックすると、以下のように起動中のコンテナの一覧が表示されます。また、コンテナをUIから起動する、「Deploy」ボタンが用意されています。
WebUIを提供しているshipyard/shipyardのコンテナをクリックすると、以下のように表示されます。restart、stop、destroy、scaleといったボタンが用意されています。
コンテナの一覧画面に戻って、「Deploy」ボタンをクリックすると、以下のような画面になります。Dockerのイメージ名やホスト名、CPUやメモリのリソースの制限について設定することができます。
Dashbordの操作
EngineとContainerで設定した値を元に、CPUやメモリのリソースの利用状況を円グラフで表示してくれます。
※Dockerが稼動しているサーバのCPU使用率やメモリ使用率をリアルタイムで表示するものではないようです。(このあたりの仕様はまだよく分かってません。)