create to blumix docker container with rest api
Post on 16-Apr-2017
126 Views
Preview:
TRANSCRIPT
© 2014 IBM Corporation
Create Bluemix Docker Containerwith REST API
Joseph Chang
Senior IT Specialist
IBM Cloud Group
Document number
© 2014 IBM Corporation2
If you are new to Bluemix Docker Container, please start from here:
https://console.ng.bluemix.net/docs/containers/container_index.html
© 2014 IBM Corporation3
http://ccsapi-doc.mybluemix.net
由此網址可以查看以 Swagger 方式呈現的Bluemix Container API,
© 2014 IBM Corporation
Get X-Auth-Token and X-Auth-Project-Id
4
© 2014 IBM Corporation
取得 X-Auth-Token 及 X-Auth-Project-Id
5
呼叫所有的 Container API 都需要這兩個參數 , 我們可以用 curl 取得 , ( 不需要安裝 cf command line tool )
© 2014 IBM Corporation
利用 curl 取得 X-Auth-Token 及 X-Auth-Project-Id
6
首先呼叫此 API 以取得正確的 UAALoginServer 端口位置。curl -G http://api.ng.bluemix.net/info
{"name":"Bluemix","build":"235018","support":"http://ibm.biz/bluemix-supportinfo","version":0,"description":"IBM Bluemix","authorization_endpoint":"https://login.ng.bluemix.net/UAALoginServerWAR","token_endpoint":"https://uaa.ng.bluemix.net","allow_debug":true}
Request:
Response:
© 2014 IBM Corporation
利用 curl 取得 X-Auth-Token
7
呼叫此 API 以取得 Auth-Token 。除了 username 及 password 的部份為你的 Bluemix 帳密。其餘部份照抄 , 勿更動。
curl -i -H "Authorization:Basic Y2Y6" -d "grant_type=password&username=<bluemix id>&password=<password>" https://login.ng.bluemix.net/UAALoginServerWAR/oauth/token
Request:
Response:
Response 如下,黃色框線 ” access_token” 欄位中的值即為我們所需的X-Auth-Token 。
Ex:
© 2014 IBM Corporation
利用 curl 取得 X-Auth-Project-Id
8
X-Auth-Project-Id 的值為 space_id ,為了取得space_id, 我們需要先取得 organization_id。
X-Auth-Project-Id = <space_id>
Get <space_id>
Get <Organization_id>
© 2014 IBM Corporation
利用 curl 取得 X-Auth-Project-Id Step 1: Get Organization_Id
9
Request:
Response:
curl -H "Authorization: bearer <access_token>" -G http://api.ng.bluemix.net/v2/organizations
Ex:
從回傳結果中取得 space_url 。
呼叫此 API 以取得Organization 資訊 , 請選擇目標 container 所屬的 Org 。
圖中數字經亂數化過 , 非真實 Org_id 。
© 2014 IBM Corporation
利用 curl 取得 X-Auth-Project-Id Step2: Get Space_Id
10
Request:
Response:
curl -H "Authorization: bearer <access_token>" -G http://api.ng.bluemix.net/v2/organizations/<org_id>/spaces
Ex:
Space id 的值不會變動 , 所以你也可以透過cf command 或 bluemix UI 取得後記下來。
呼叫此 API 以取得 Space 資訊 , 請選擇目標 container 所屬的 Space 。
Space 的 guid ( 黃色框線 ) 即為我們所需之 X-Auth-Project-id 。
© 2014 IBM Corporation
Test Calling API
11
© 2014 IBM Corporation
Test it, 測試一下
12
填入 X-Auth-Token 及 X-Auth-Project-Id, ,然 後按 Try it out!
此工具無法正常執行 ! 但是可以協助組合出正確的 curl 命令
© 2014 IBM Corporation
Test it, 測試一下
13
執行結果如下 , 請複製 Curl 的內容 , 貼到命令列中執行
© 2014 IBM Corporation
Test it, 測試一下
14
執行結果如下
如果看到 [{“message”: “The size of an image reported by IBM Container….. 表示成功
© 2014 IBM Corporation
Create Container with API
15
© 2014 IBM Corporation
了解 Create Container 的 REST API 名稱及參數
16
使用這個 API 來Create Container
© 2014 IBM Corporation
了解 Create Container 的 REST API 名稱及參數
17
Create Container 需要這四個參數 , 其中的 Param 是一個複雜的 JSON structure, 需要特別說明。
請點選此處。
© 2014 IBM Corporation
了解 Create Container 的 REST API 名稱及參數
18
點選後會自動帶入以上預設內容。
Param 參數 值 備註Memory 256
Env [“ENV1=TEST1] 格式正確即可 , 在此不會直正用到Cmd Remove it 與 liberty server 搭配時 , 請刪除此參數 , 以免影響 Server 起動 Image “registry.ng.bluemix.net/
ibmliberty:latest”此 Image 帶有 liberty server, 容易觀察結果是否正確
ExposedPorts [“9080”,”9443”]
HostConfig 參考下表BluemixApp “” 填入的 cf app 必須存在 , 否則否有錯
誤 , 初次測試時建議留空白Volumes Remove it 填入值不正確會導致 “ The container could
not be created because the volume format was invalid”
NumberCpus 1
Cpuset “”
HosConfig 參數 值 備註PortBindings [“9080”,”9443”]
Links Remove it !! 填入值不正確時會導致 “ list index out of range"
Binds Remove it !! 填入值不正確會導致 “ The container could not be created because the volume format was invalid”
ExtraHosts Remove it !! 填入值不正確會導致 container 建立時crash
© 2014 IBM Corporation
由 Swagger 產生 Create Container 的命令
19
按下 try it out 可產生 curl 指令。
最終參數如左 , 別忘了填入 X-Auth-Token 及 X-Auth-Project-Id 。
© 2014 IBM Corporation
在命令列中執行 create container API
20
看到此訊息表示create container 指令已被執行。
© 2014 IBM Corporation
The container created by REST API is running !!
21
top related