コンテナ内で複数の
サービスを管理する試みと何か...


 







Docker Meetup Tokyo #2
@inokara(かっぱ)
Docker 芸人をめざして九州からやって参りました


誰?



「新婚さんい◯っしゃい」出ました

さて


コンテナ内で複数サービスを管理する試み...

については... monit を使用する例が掲載されています
(宣伝:私のブログも紹介して頂きました

他にも


Supervisord
God(!)

などのツールで
コンテナ内で複数のサービスを管理することが出来そうです



以上...







One More Thing...
(さあ、ネタに困った)








そんな時...

Dashing


お手軽にダッシュボードを作れるフレームワーク




に出会った







レや!



Docker Remote API
+
docker-api(gem)
+
Dashing

で...

こんなん作ってみました


https://github.com/inokappa/docker-dashboard

で、どこで Docker?(1)


docker_ver = Docker.version
send_event('docker', { text: hostname } )
send_event('docker', { moreinfo: docker_ver["Version"] } )  

で、どこで Docker?(2)


cons_run = Docker::Container.all(:running => true)
    run_docker_list = Hash.new({ value: 0 })
    cons_run.each do |con|
      docker_id = con.id[0,12]
      docker_image = con.info.fetch("Image")
      run_docker_list[docker_id] = { label: docker_id, value: docker_image }
      send_event('containers', { items: run_docker_list.values })
    end
  end 

で、どこで Docker?(3)


cons_run = Docker::Container.all(:running => true)
send_event('count', { current: cons_run.size } )
docker_info = Docker.info
send_event('allcontainers', { current: docker_info["Containers"] } ) 








たったこれだけ...







簡単や!

最後に


コンテナ内で複数サービスを管理する場合には工夫が必要だと思う
ツールは monit / Supervisord / God お好みで


Docker Remote API は簡単に利用出来て
curl で叩くと JSON で返ってくるし
シェルしか解らない自分にも優しい


そして、Dashing は色々と応用効きそうだ

ということで...









Docker って楽しいですよね