DockerをWebブラウザで管理できる「Seagull」レビュー

Dockerを本格的に使い始めると、どのコンテナが動いていて、イメージは何があるのかなどの管理が煩雑になります。ターミナルで操作はできるものの、実際に運用を行っていく中ではやはり管理用のインタフェースが欲しくなるのではないでしょうか。
そこで使ってみて欲しいのがSeagullです。コンテナやイメージの状態を一覧表示したり、起動や停止と言った操作もできるDocker管理用のWebシステムとなっています。
今回はこのSeagullをさくらのクラウドを使って試してみました。
用意するもの
- Ubuntu 14.04 LTS(CentOSやCoreOSでも動くと思いますが)
- Docker(apt-get install docker.io)
Seagullのインストール
SeagullのインストールはDockerコマンドでできます。
$ docker run -d -p 10086:10086 -v /var/run/docker.sock:/var/run/docker.sock tobegit3hub/seagull
-vオプションで分かる通り、Dockerのsockファイルをわたしています。これを使ってDockerの状態をコントロールしています。
立ち上がったら、 http://サーバのIPアドレス:10086/ でSeagullにアクセスできます。

Seagullの機能
メニューは4つで、コンテナ、イメージ、設定、GitHubとなっています。
コンテナメニュー

コンテナでは既に登録されているコンテナが一覧表示できます。このコンテナは終了しているものも含めて表示されます。なお、ここから新しいコンテナを作ることはできません。
イメージメニュー

イメージメニューはDockerイメージの一覧表示です。ここでも新規作成はなく、既にあるイメージを一覧できるだけとなっています。イメージの削除は可能です。
設定メニュー

設定メニューはDockerやGoの設定状態を確認できる画面になります。特に編集することはできず、設定を確認するだけとなっています。
DockerHubメニュー

この画面では今のところSeagullの情報を確認できるだけとなっています。
その他の機能
Seagullはローカルだけでなく、外部のDockerサーバに対しても操作ができます。サーバを追加すれば、リモートのDockerサーバに対しても操作ができます。
追加する場合は、右上にあるLocalメニューにあるAdd Serverを選択します。
メニューよりAdd Serverを選択
Add Serverを選択すると、モーダルウィンドウが開くので、そこでDockerサーバのIPアドレスを入力します。

サーバ追加
使い方
実際のDokcer利用についてはこれまで通りターミナルで行います。その結果がSeagullで確認できる仕組みです。

一旦コンテナを作ってしまえば、その後の起動や終了、削除はSeagull上から行える仕組みです。
コンテナの詳細情報を確認すると、走っているプロセスも表示されます。

アクセス制限
SeagullはそのままだとIPアドレス+ポート番号で誰でもアクセスできるようになります。そこで例えばローカルからだけアクセスできるように、次のように起動コマンドを実行します。
$ docker run -d -p 127.0.0.1:10086:10086 -v /var/run/docker.sock:/var/run/docker.sock tobegit3hub/seagull
そしてnginxなどのWebサーバをプロキシとしてSeagullにアクセスするようにし、nginx側でIPアドレスベースやBasic認証などの制限を設けるのが推奨されています。
Seagullは手作業でDockerを試しているときよりも、実際の運用フェーズの中で自動化している際、その状況を確認する目的に良いのではないでしょうか。いくつのコンテナが立ち上がっているのかなど、Seagullを使えばすぐに把握できます。わざわざサーバにログインしなくても良いので手軽です。
今後Dockerを本格的に運用していこうと考えた際にはSeagullの導入を検討してください。