【编者的话】DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和Docker Hub API。

纵观我们的Docker系列教程,我们已经讨论了很多重要的​​​Docker组件​​​与​​命令​​​。在本文中,我们将继续深入学习Docker:剖析Docker APIs。

Docker提供了很多的API以便用户使用。这些API包含四个方面:

  • Docker Registry API
  • Docker Hub API
  • Docker OAuth API
  • Docker Remote API

具体到这篇文章,我们将讨论Docker Registry API以及Docker Hub API。
 

Docker Registry API

Docker Registry API是​​Docker Registry​​​的REST API,它简化了镜像和仓库的存储。该API不能访问用户帐户或者获得授权。你可以阅读​​Docker系列教程的第四章​​​,以了解更多有关Registry的类型(译者注:Docker中有几种不同的Registry)。
 

Extract image layer:

取出镜像层:
​​​GET /v1/images/(image_id)/layer​

​​

 

Insert image layer:

插入镜像层:
​​​PUT /v1/images/(image_id)/layer​​  

Retrieve an image:

检索镜像:
​​​GET /v1/images/(image_id)/json​​  

Retrieve roots of an image:

检索根镜像:
​​​GET /v1/images/(image_id)/ancestry​​  

Obtain all tags or specific tag of a repository:

获取库里所有的标签或者指定标签:
​​​GET /v1/repositories/(namespace)/(repository)/tags​​​
或者
​GET /v1/repositories/(namespace)/(repository)/tags/(tag*)​

​​

 

Delete a tag:

删除标签:
​​​DELETE /v1/repositories/(namespace)/(repository)/tags/(tag*)​

​​

 

Status check of registry:

registry状态检查:
​​​GET /v1/_ping​

​​

 

Docker Hub API

Docker Hub API是Docker Hub的一个简单的REST API。再提醒一下,请参考​​Docker系列教程的第四篇文章​​​了解Docker Hub。Docker Hub 通过管理校验(checksums)以及公共命名空间(public namespaces)来控制着用户帐户和授权。该API还支持有关用户仓库和library仓库的操作。

首先,让我们来看看特殊的library仓库(需要管理员权限)的命令:
1. 创建一个新的仓库。使用以下命令可以创建新的library仓库:
​​​PUT /v1/repositories/(repo_name)/​​​ 其中,​​repo_name​​是新的仓库名称。
2. 删除已经存在的仓库。命令如下:
​DELETE /v1/repositories/(repo_name)/​​ 其中,​​repo_name​​是要删除的仓库名称。
3. 更新仓库镜像。命令如下:
​PUT /v1/repositories/(repo_name)/images​​ 4. 从仓库中获取镜像。命令如下:
​GET /v1/repositories/(repo_name)/images​​ 5. 授权。使用Token获取仓库授权,如下:
​PUT /v1/repositories/(repo_name)/auth​​ 接下来,让我们来看看用户仓库的命令。library仓库与用户仓库命令之间的主要区别是命名空间的使用。

1.创建用户仓库。命令如下:
​PUT /v1/repositories/(namespace)/(repo_name)/​

​​

2.删除用户仓库,命令如下:
​​​DELETE /v1/repositories/(namespace)/(repo_name)/​

​​

3.更新用户仓库镜像,命令如下:
​​​PUT /v1/repositories/(namespace)/(repo_name)/images​

​​

4.从仓库中下载镜像。如下:
​​​GET /v1/repositories/(namespace)/(repo_name)/images​

​​

5.验证用户登录,如下:
​​​GET /v1/users​

​​

6.添加新用户,命令如下:
​​​POST /v1/users​​ 7.更新用户信息,如下:
​PUT /v1/users/(username)/​
现在,我们已经走过了Docker API之旅的第一站,第二站是有关Docker OAuth以及Remote API的内容,我们将在​​Docker系列教程的下一篇​​见。