好久没写博客,工作中想着未来部门需要对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. java——IO(普通文件,二进制文件,压缩文件 )

    二进制文件 压缩包

  2. Luogu P1738 洛谷的文件夹

    P1738 Luogu 发一个链表题解! 仅有24ms,排名第一哦~ 圆圈代表点,每个店有两个指针,一个指向自己兄弟(同级文件夹),另一个指向自己孩子(子文件夹),还有一个保存当前名字. 有点像二叉树 ...

  3. siege之-服务端性能测试

    官方网站http://www.joedog.org/ 有3种操作模式: 1) Regression (when invoked by bombardment)Siege从配置文件中读取URLs,按递归 ...

  4. flutter duplicate symbol '_GetDirectoryOfType' in:

    ld: warning: directory not found for option '-F/Users//codingProject/vipidea-app/ios/Runner/SuperPla ...

  5. mac 堡垒机传文件

    安装zssh brew install zssh 上传文件 zssh登陆上跳板机 在跳板机上ssh到相应服务器 在服务器上cd至相应要放上传文件的目录 rz -bye //在远程服务器的相应目录上运行 ...

  6. windows API 创建系统托盘图标

    系统托盘在我们使用的程序中很普遍,下面我们来看一个很不错的例子,使用Win32 API实现,对理解系统托盘有些帮助. [cpp] view plaincopy #include <windows ...

  7. Ubuntu下安装Samba服务器

    闲来无聊尝试自己安装下Samba服务器,使本机和虚拟机可以无障碍传输文件(虽然用VMwaretools可传,但总感觉麻烦,而且速度欠佳) 首先,同安装qemu一样,在安装之前要确定你的系统apt列表已 ...

  8. 校验文件是否是同一个文件,以及mac中使用MD5命令

    背景 sz了war包,因为查看不到里面的内容,并不确定是否是同一个文件. 解决 通过MD5校验 md5sum xxxx 但是在mac中是没有这个命令的下载半天没下载下来,下面是快捷操作. 1.打开终端 ...

  9. JAVA单元测试的用法和要点(入门篇)

    一.单元测试的目的?      单元测试是编写测试代码,用以检测特定的.明确的.细颗粒的功能!  严格来说,单元测试只针对功能点进行测试,不包括对业务流程正确性的测试.现在一般公司都会进行业务流程的测 ...

  10. 022_IO流

    对象流 // FileInput.FileOutputStream(节点流)ObjectInputStreamObjectOutputStream 序列化 把内存的数据信息永久的保存在硬盘中,这个过程 ...