好久没写博客,工作中想着未来部门需要对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等,暂时没测试出来结果。

Docker Api 实测的更多相关文章

  1. Docker入门教程(七)Docker API

    Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...

  2. 【漏洞挖掘】攻击对外开放的Docker API接口

    https://medium.com/@riccardo.ancarani94/attacking-docker-exposed-api-3e01ffc3c124 1)场景 攻击开放在互联网的Dock ...

  3. python调用docker API(CentOS6.5)

    一 环境背景 python-2.7.8 docker 版本 1.15 (*yum安装为1.14版本,需升级为1.15,详见后续步骤) 二 获取Docker容器指标[指标可行性分析见笔记:] CPU : ...

  4. docker API 配置与使用

    在网上看到一大堆乱乱七八招的博客,很多都不能用,我根据这些天踩的坑来总结一下吧 首先!怎么配置 docker API 两种方法 在/etc/sysconfig/docker文件里加一行OPTIONS= ...

  5. Docker for mac开启docker api调用

    docker-java 支持unix socket调用的 DefaultDockerClientConfig config = DefaultDockerClientConfig.createDefa ...

  6. Java 使用 UnixSocket 调用 Docker API

    在 Docker 官网查阅 API 调用方式 例如:查询正在运行的容器列表,HTTP 方式如下: $ curl --unix-socket /var/run/docker.sock http:/v1. ...

  7. python docker api

    开启Remote API docker默认是没有开启Remote API的,需要我们手动开启.编辑/lib/systemd/system/docker.service文件, 在文件里的ExecStar ...

  8. 使用docker api

    前提: 系统centos 7 docker version 1.10.3 使用systemd启动docker 访问方式: 修改/usr/lib/systemd/system/docker.servic ...

  9. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

随机推荐

  1. MySql中创建用户,授权

    第一天搞MySql好多东西都不会,幸好有网络的强大资源,首先需要注意的是任何一条sql语句都是要以分号结尾的,不然很是蛋疼的 1.新建用户. //登录MYSQL @>mysql -u root  ...

  2. springboot之停止与启动服务的脚本

    最近要开始自动化部署了,我们要编写杀死服务的脚本. 我在windows写好的脚本拷贝到linux,就是不行,好像是因为转义字符吧. 然后,我就手敲了这个下面脚本: pid=`ps -ef|grep / ...

  3. action通信机制

    当service通信不能很好的完成任务时候, actionlib则可以比较适合实现长时间的通信过程, actionlib通信过程可以随时被查看过程进度, 也可以终止请求, 这样的一个特性, 使得它在一 ...

  4. git+可视化工具+github/码云

    git (实际上git和TortoiseGIT是一回事,只是TortoiseGIT把git命令行功能做了一个可视化处理,所以下面git和TortoiseGIT实现功能是一样的) 1.如何使用Git上传 ...

  5. webstorm使用说明

    1.移动光标到的代码块的结尾处(开始处 [ )      ctrl+] 2.移动光标到的代码块的结尾处并选择   ctrl+shift+] 3.ctrl + b: 跳到变量申明处 4.多光标输入:  ...

  6. centos coreseek

    下载稳定版 coreseek wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz 解压 .tar.gz cd cor ...

  7. sqlmap用户手册详解【实用版】

    网上的sqlmap教程很多,但是我自己备忘小笔记都是在我的电脑上存着了,万一我要出去玩的时候,有点忘了,还得再百度翻翻,还不如发到我自己知乎上,忘了立马一看就记着了.虽说我的sqlmap备忘小笔记汇总 ...

  8. AntiPlug

    反插件工程 #pragma once #ifndef __ENHANFUNC_H__ #define __ENHANFUNC_H__ #include <iostream> #includ ...

  9. Java-Class-FC:java.lang.StringBuilder

    ylbtech-Java-Class-FC:java.lang.StringBuilder 1.返回顶部   2.返回顶部 1. @Override public String toString() ...

  10. 【HTML】框架集(Framesets)

    1.Frameset的使用 所谓框架便是网页画面分成几个框窗,同时取得多个 URL.只 要 <FRAMESET> <FRAME> 即可,而所有框架标记 要放在一个总起的 htm ...