ようへいの日々精進XP

よかろうもん

redis-commander と redis が動く Dockerfile を作った

はじめに

redisGUI で操作出来る redis-commander というツールが紹介されていたので、試すにあたって redis と redis-commander が動作する Dockerfile を作った。


redis-commander

スクリーンショット

f:id:inokara:20140305233334p:plain

実装

Dockerfile

docker build

こちらからどうぞ。(後で README 書きます)

git clone https://github.com/inokappa/dockerfile-redis.git
cd dockerfile-redis
docker build -t ${your_container} .

ちょっと時間が掛かる。

docker run

Dockerfile 内でポート等も決め打ちしているので docker run も以下のようにシンプル。

docker run -d -i ${your_container}

monit 管理

コンテナの IP でポート 2812 にアクセスすると monit のダッシュボードが表示される。

f:id:inokara:20140306070216p:plain

プロセスの監視は monit でやると便利(だと思う)。

redis-commander

コンテナ IP の ポート 8081 にアクセスすると redis-commander にアクセスすることが出来る。

f:id:inokara:20140306070337p:plain

左ペインの 127.0.0.1:6379:0 をクリックすると上記のような redis-server のステータスを確認することが出来る。

f:id:inokara:20140306070358p:plain

Add New Key... をクリックするとデータを登録することが出来る。試しに String 型のデータを登録してみる。

f:id:inokara:20140306070429p:plain

登録が完了すると左ペインの 127.0.0.1:6379:0 からクリックして確認することが出来る。

f:id:inokara:20140306070448p:plain

上記のようにデータのエクスポート機能等も備える。


最後に

まだ、ちょっとしか使ってないけど

  • こりゃ便利そう(薄っぺらいコメントで恐縮です...)
  • 外部の redis-server にも接続することが出来そうなので試してみる

おまけ

monit で...

/etc/init.d/monit start とすると以下のようなエラーが出た。

Starting monit: /etc/monit.d/redis.conf:1: Error: service name conflict, redis already defined '/var/run/redis.pid'
monit: The control file '/etc/monit.conf' must be owned by you.
                                                           [FAILED]

redis を監視する設定ファイルを以下のように書いていたのが原因。

check process redis with pidfile /var/run/redis.pid
    start program = "/usr/local/bin/redis-server /usr/local/etc/redis.conf"
    stop program = "/usr/bin/pkill redis"

以下のように修正した。

check process redis-server with pidfile /var/run/redis.pid
    start program = "/usr/local/bin/redis-server /usr/local/etc/redis.conf"
    stop program = "/usr/bin/pkill redis"