Docker API之Remote API
Docker之所以在市場上有如此優秀的表現與其優秀的API有著不可分割的關係。其API之所以有如此出色的表現離不開REST(Representational State Transfer)架構,即其API為RESTful API。
所以在深入瞭解DockerAPI之前先做點準備工作,主要兩點:
1、RESTful簡單介紹
RESTful是一種軟體風格架構而不是標準,僅提供一組設計原則和約束條件;主要用於客戶端和伺服器互動類的軟體。其優勢在於可以軟體更簡潔、有層次且易於實現快取等機制。如果一個架構符合REST原則,就稱之為RESTful架構。
簡單來說,RESTful架構有3個特點:一、每個URI代表一個資源;二、客戶端和伺服器之間,傳遞的是這種資源的某種表現層;三、客戶端通過4個HTTP動詞,對伺服器端資源進行操作,實現REST。
eg:RESTful風格的API要管理使用者時是這樣的
//獲取userId對應的user資訊
get /users/{userId}
//建立一個新的user
post /users
//更改userId對應的user的資訊
put /users/{userId}
//刪除userId對應的user
delete /users/{userId}
關於RESTful詳細資料在網上可以搜尋到不少,本文僅介紹學習Docker API需要用到的。
2、開啟socket埠
為了更好地學習Docker API ,需要設定一下本地的Docker daemon啟動引數,使其開啟socket埠用於返回資訊。在
以上都準備好了就進入本文的正題了。
Docker 提供了多類RESTful API,包括Docker Registry API、Docker Hub API、Docker Remote API、Docker Swarm API等,本文主要介紹Remote API,具體可參考官網Reference documentation | Docker Documentation中API部分。
一、容器API
1、容器列表Docker Engine API v1.41 Reference
GET /containers/json
curl -X GET --unix-socket /var/run/docker.sock http://localhost:2375/containers/json
docker ps就是 GET /containers/json的執行結果。
2、建立容器Docker Engine API v1.41 Reference
POST /containers/create
3、監控容器Docker Engine API v1.41 Reference
GET /containers/{id}/json
4、程序列表Docker Engine API v1.41 Reference
GET /containers/{id}/top
5、容器日誌Docker Engine API v1.41 Reference
GET /containers/{id}/logs
6、匯出容器Docker Engine API v1.41 Reference
GET /containers/{id}/export
7、啟動容器Docker Engine API v1.41 Reference
POST /containers/{id}/start
8、停止容器Docker Engine API v1.41 Reference
POST /containers/{id}/stop
9、重啟容器Docker Engine API v1.41 Reference
POST /containers/{id}/restart
10、終止容器Docker Engine API v1.41 Reference
POST /containers/{id}/kill
等其他一些系列容器列表。
二、映象API
1、建立映象Docker Engine API v1.41 Reference
POST /images/create
2、使用容器建立映象Docker Engine API v1.41 Reference
POST /commit
3、映象列表Docker Engine API v1.41 Reference
GET /images/json
4、刪除映象Docker Engine API v1.41 Reference
DELETE /images/{name}
5、推送映象Docker Engine API v1.41 Reference
POST /images/{name}/push
6、打上標籤Docker Engine API v1.41 Reference
POST /images/{name}/tag
7、搜尋映象Docker Engine API v1.41 Reference
GET /images/search
8、映象歷史Docker Engine API v1.41 Reference
GET /images/{name}/history
9、構建映象Docker Engine API v1.41 Reference
GET /build
等
未完,待續……