標籤:狀態 部門 encode 添加 nta spec 參數 net .com
好久沒寫部落格,工作中想著未來部門需要對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和名稱,狀態過多就不一一介紹了。
Docker Api 實測