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、今日はここまで。