zoukankan      html  css  js  c++  java
  • Docker Api 实测

    好久没写博客,工作中想着未来部门需要对docker进行维护相对麻烦,而且,网络上也缺少一些合适的项目,于是准备筹划自己动手。先找到了Docker 的API文档,地址是:https://docs.docker.com/engine/api/v1.26/

    上班的时候发现有API功能,可以直接获取json格式数据,那就不需要自己动手去运行实例并解析文本了。

    接口可以使用http查询,也可以使用Unix进程协议查询。为了方便,我暂时使用的是unix进程协议进行查询。

    既然用Unix进程协议的话,那就可以使用curl命令进行查看,只需要添加参数--unix-socket即可。

    接口:GET /containers/json

    命令:curl --unix-socket /var/run/docker.sock http://v1.26/containers/json

    结果:

    结果解析:从中我们可以发现有网络管理(network),挂载管理(mounts),运行情况(state)以及容器的基本信息

    接口:POST /containers/create

    命令:curl -v --unix-socket /var/run/docker.sock http://v1.26/containers/create?name=hell -d '{"Image":"ubuntu"}' -H "Content-Type: application/json"

    结果:

    结果解析:创建容器需要在请求中带有name参数,同时需要post请求大量配置,不过也可以简单写一个image的json字符串,不过这样会在运行后终止,post请求的头部需要是application/json ,否则会爆500错误,{"message":"Content-Type specified (application/x-www-form-urlencoded) must be 'application/json'"}

    接口:GET /containers/{id}/json

    命令:curl -v --unix-socket /var/run/docker.sock http://v1.26/containers/4941f62/json

    结果:

    结果说明:该方法可以查询一个容器的状态信息,参数可以使用id和名称,状态过多就不一一介绍了。

    接口:GET /containers/{id}/top

    命令:curl -v --unix-socket /var/run/docker.sock http://v1.26/containers/4941f62/top

    结果:

    结果解析:接口会得到容器内运行的进程列表,其实就算top命令的结果,会返回一个进程列表和一个title字段。

    接口:GET /containers/{id}/logs

    命令:curl -v --unix-socket /var/run/docker.sock http://v1.26/containers/4941f62/logs?stderr=true

    结果:貌似可以获取到容器的日志信息,stdout和stderr等,暂时没测试出来结果。

  • 相关阅读:
    ant 软件包不存在报错
    在 Internet Explorer 中使用 Windows 窗体控件
    智能客户端
    Back to the Future with Smart Clients
    "Automation 服务器不能创建对象" 的解决方案
    Top 10 Reasons for Developers to Create Smart Clients
    Updater Application Block for .NET
    Smart Client Application Model and the .NET Framework 1.1
    Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
    智能客户端技术总结(二)
  • 原文地址:https://www.cnblogs.com/you-well-day-fine/p/7492142.html
Copyright © 2011-2022 走看看