云服务 使用 docker-api gem 连接管理 阿里云 swarm mode 集群

lithium4010 · 2018年01月19日 · 最后由 menghuanwd 回复于 2018年01月19日 · 4408 次阅读

按照阿里云的文档进行操作。

实测下载好证书,配置好环境变量后,可以很容易成功使用 docker 命令连接到集群。

在使用 docker-api 连接时遇到无法连接的问题。

通过查看源码,调整配置参数 Docker.options[:debug_response] = true,发现 response 如下:

Excon::Error::NotAcceptable: Expected([200, 201, 202, 203, 204, 301, 304]) <=> Actual(406 Not Acceptable)
excon.error.response
  :body          => "Sorry, your version is too low!\nPlease use Docker Client over 1.8, Docker REST API over 1.20.\n\n"
 .....
  :path          => "/v1.16/info"
 .....

可以看到这里把版本锁在了 v1.16 github 上搜索发现作者已经提交了一个 pr https://github.com/swipely/docker-api/pull/510 fork 代码,手动 merge 他的 pr 利用 specific_install 来安装到本地

gem install specific_install
gem specific_install -l https://github.com/xxxxx/docker-api.git

之后就可以正常使用 docker-api 管理集群了

PS: 作者应该会在之后把这个 pr 合并到 master

需要 登录 后方可回复, 如果你还没有账号请 注册新账号