Docker 的 API

API: Application Programe Interface, 应用程序访问接口。 通过发布 API,我们的程序就可以在别的语言,平台中被调用。如果一个程序拥有 API,我们就可以为其开发 "客户端",而不依赖某一个具体语言。当然也能集成到自己的平台,完成一些有趣的功能。 

API 的主要类型:RESTful,基于 HTTP 协议,也能基于 RPC 协议。

所谓 RESTful, 是指通过如HTTP协议封装的各种请求, 主要包括 GET, POST, UPDATE, DELETE, PUT 等,保存创建,修改等操作。 一般 RESTful 服务器提供这些请求的接口(地址,路径,参数),然后客户端可以通过过类似 Linux 命令 curl, Python 标准库 httplib、httplib2、urllib 等访问, 需要注意的是,多数参数(数据)都是以 JSON/XML 打包。 并且多数按照 token 方式验证请求权限和安全性。 当然也支持其他类型的验证。

可以在 Docker 官网看到 Docker API 的介绍:

  1. Docker Remote API
  2. Docker Remote API Client Libraries(简称 rcli)

有何区别?

  1. 原生态 RESTful 标准,官方维护,支持最新的功能
  2. 支持各种语言的 SDK、Client 库,较 API 版本滞后。

和 OpenStack 的 python-*client 一样, rcli 无非就是对 Docker Remote API 的一种封装实现,由官方和第三方在维护,但并不保证兼容性。

下面是 官方 在介绍 rcli 的说明: ​
These libraries have not been tested by the Docker Maintainers for compatibility. Please file issues with the library owners. If you find more library implementations, please list them in Docker doc bugs and we will add the libraries here.

需要注意的是,官方已经明确说明 Remote API 已经取代了 rcli:

https://docs.docker.com/reference/api/docker_remote_api
The Remote API is replacing rcli.

有精力的话完全可以自己封装一些方法。

Longgeek

Read more posts by this author.

Subscribe to Longgeek Fuvism | Python Linux 云计算 | OpenStack 虚拟技术HPC | 性能调优自动化服务器架构

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!