dockerのAPIをrubyから試してみる。

rubyのラッパーが存在しているので、それを利用する。

ぱっと見2種類見つけたが、より更新日が新しい"swipely / docker-api"を利用する事にした。

環境

Client version: 0.6.6
Go version (client): go1.2rc3
docker-api(今回インストール): 1.7.2

設定

/etc/init/docker.conf を修正しdockerを再起動させる。

後々の事を考えて"docker -d ..."を"usr/bin/docker -d -H="unix://var/run/docker.sock" -H="tcp://127.0.0.1:4243" -api-enable-cors"に修正する。

description "Docker daemon"

start on filesystem and started lxc-net
stop on runlevel [!2345]

respawn

script
        /usr/bin/docker -d -H="unix://var/run/docker.sock" -H="tcp://127.0.0.1:4243" -api-enable-cors
end script

再起動は以下のコマンドで行い、まずはdockerのrestful apiをコールしてみる。

$ sudo stop docker
$ sudo start docker
$ curl -X GET http://127.0.0.1:4243/containers/json?all=1

jsonで値がとれたので正常に動作している。

ruby環境のセットアップ

$ gem install docker-api
$ irb
irb(main):001:0> require 'docker'
=> true
irb(main):004:0> Docker.url='http://127.0.0.1:4243/'
=> "http://127.0.0.1:4243/"
irb(main):005:0> Docker.version
=> {"Version"=>"0.6.6", "GitCommit"=>"6d42040", "GoVersion"=>"go1.2rc3"}
irb(main):006:0> 

とりあえず、バージョンとれたのでOK、今日はここまで。