# Docker入門教程(七)Docker API
> 【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第七篇,重點介紹了Docker Registry API和Docker Hub API。
縱觀我們的Docker系列教程,我們已經討論了很多重要的[Docker組件](http://dockerone.com/article/101)與[命令](http://dockerone.com/article/102)。在本文中,我們將繼續深入學習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](http://dockerone.com/article/104)的REST API,它簡化了鏡像和倉庫的存儲。該API不能訪問用戶帳戶或者獲得授權。你可以閱讀[Docker系列教程的第四章](http://dockerone.com/article/104),以了解更多有關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系列教程的第四篇文章](http://dockerone.com/article/104)了解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系列教程的下一篇](http://dockerone.com/article/109)見。
> 出處:http://dockone.io/article/107
> 原文鏈接:[Ultimate Guide for Docker APIs](http://blog.flux7.com/blogs/docker/docker-tutorial-series-part-7-ultimate-guide-for-docker-apis)(翻譯:[田浩浩](https://github.com/llitfkitfk)?審校:李穎杰)