LoginSignup
1
1

More than 5 years have passed since last update.

AmazonLinuxでrubyからdocker apiを使う

Posted at
$ ruby -r docker -e 'p Docker.version'
/usr/local/share/ruby/gems/2.0/gems/docker-api-1.19.0/lib/docker/connection.rb:50:in `rescue in request': Expected([200, 201, 202, 203, 204, 304]) <=> Actual(404 Not Found) (Docker::Error::NotFoundError)
    from /usr/local/share/ruby/gems/2.0/gems/docker-api-1.19.0/lib/docker/connection.rb:38:in `request'
    from /usr/local/share/ruby/gems/2.0/gems/docker-api-1.19.0/lib/docker/connection.rb:61:in `block (2 levels) in <class:Connection>'
    from /usr/local/share/ruby/gems/2.0/gems/docker-api-1.19.0/lib/docker.rb:94:in `version'
    from -e:1:in `<main>'

結論

  • docker-apiの要求するのとDockerが提供するAPIのバージョンが違った
$ ruby -r docker -e 'Docker.validate_version!'
/usr/local/share/ruby/gems/2.0/gems/docker-api-1.19.0/lib/docker.rb:118:in `rescue in validate_version!': Expected API Version: 1.16 (Docker::Error::VersionError)
    from /usr/local/share/ruby/gems/2.0/gems/docker-api-1.19.0/lib/docker.rb:115:in `validate_version!'
    from -e:1:in `<main>'
$ curl http://localhost:4243/version
{"ApiVersion":"1.15","Arch":"amd64","GitCommit":"c78088f/1.3.3","GoVersion":"go1.3.3","KernelVersion":"3.14.27-25.47.amzn1.x86_64","Os":"linux","Version":"1.3.3"}

解決方法

  • 現在のAmazonLinuxの最新でもAPI1.15なのでgemのバージョンを下げるしかない
$ gem install docker-api -v 1.18.0
$ ruby -r docker -e 'Docker.validate_version!; p Docker.version'
{"ApiVersion"=>"1.15", "Arch"=>"amd64", "GitCommit"=>"c78088f/1.3.3", "GoVersion"=>"go1.3.3", "KernelVersion"=>"3.14.27-25.47.amzn1.x86_64", "Os"=>"linux", "Version"=>"1.3.3"}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1