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

seagull-top

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のトップページ

Seagullのトップページ

Seagullの機能

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

コンテナメニュー

コンテナの画面

コンテナの画面

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

イメージメニュー

イメージの画面

イメージの画面

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

設定メニュー

設定の画面

設定の画面

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

DockerHubメニュー

DockerHubの画面

DockerHubの画面

この画面では今のところSeagullの情報を確認できるだけとなっています。

その他の機能

Seagullはローカルだけでなく、外部のDockerサーバに対しても操作ができます。サーバを追加すれば、リモートのDockerサーバに対しても操作ができます。

追加する場合は、右上にあるLocalメニューにあるAdd Serverを選択します。

メニューより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の導入を検討してください。

tobegit3hub/seagull