Dockerのコンテナを操作できるWebアプリを作ってみた

Dockerの操作は、コマンドからだけではなく、リモートAPI経由でもできます。
APIの説明はここにあります。 http://docs.docker.io/en/latest/api/docker_remote_api/

今回は、このAPIを使ってコンテナを簡易的に操作できるWebアプリを作ってみました。
とりあえず実装した機能は、

  • 稼働中コンテナの一覧
  • 稼働中コンテナの停止
  • コンテナの立ち上げ

です。

作ったもの

こんな感じの見た目です。
f:id:kuro_m88:20140211035644p:plain
画像を見れば分かると思いますが、操作はこれ1ページで完結しています。

コード

Githubにあげました。
https://github.com/kurochan/docker-panel
処理はほぼweb.rbで行っていて、あとはhtmlのレンダリングくらいです。
コードは全部で50行ないくらいです。
Sinatraを使うとシンプルに作れていいですね。

これを作るために、下調べとして昨日、RubyからDockerコンテナを作ってsshで操作できるようにする - くろの雑記帳という記事を書きました。
また、Webアプリとして動かすために、以前Herokuで静的ファイルのホスティングをしようとしていた時に作ったもの (https://github.com/kurochan/sinatra-static)が役に立ちました。

作りが雑な部分がありますが、とりあえず動く簡単なデモということで(笑)