create to blumix docker container with rest api

22
© 2014 IBM Corporation Create Bluemix Docker Container with REST API Joseph Chang Senior IT Specialist IBM Cloud Group Document number

Upload: joseph-chang

Post on 16-Apr-2017

126 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Create to blumix docker container with rest api

© 2014 IBM Corporation

Create Bluemix Docker Containerwith REST API

Joseph Chang

Senior IT Specialist

IBM Cloud Group

Document number

Page 2: Create to blumix docker container with rest api

© 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

Page 3: Create to blumix docker container with rest api

© 2014 IBM Corporation3

http://ccsapi-doc.mybluemix.net

由此網址可以查看以 Swagger 方式呈現的Bluemix Container API,

Page 4: Create to blumix docker container with rest api

© 2014 IBM Corporation

Get X-Auth-Token and X-Auth-Project-Id

4

Page 5: Create to blumix docker container with rest api

© 2014 IBM Corporation

取得 X-Auth-Token 及 X-Auth-Project-Id

5

呼叫所有的 Container API 都需要這兩個參數 , 我們可以用 curl 取得 , ( 不需要安裝 cf command line tool )

Page 6: Create to blumix docker container with rest api

© 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:

Page 7: Create to blumix docker container with rest api

© 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:

Page 8: Create to blumix docker container with rest api

© 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>

Page 9: Create to blumix docker container with rest api

© 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 。

Page 10: Create to blumix docker container with rest api

© 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 。

Page 11: Create to blumix docker container with rest api

© 2014 IBM Corporation

Test Calling API

11

Page 12: Create to blumix docker container with rest api

© 2014 IBM Corporation

Test it, 測試一下

12

填入 X-Auth-Token 及 X-Auth-Project-Id, ,然 後按 Try it out!

此工具無法正常執行 ! 但是可以協助組合出正確的 curl 命令

Page 13: Create to blumix docker container with rest api

© 2014 IBM Corporation

Test it, 測試一下

13

執行結果如下 , 請複製 Curl 的內容 , 貼到命令列中執行

Page 14: Create to blumix docker container with rest api

© 2014 IBM Corporation

Test it, 測試一下

14

執行結果如下

如果看到 [{“message”: “The size of an image reported by IBM Container….. 表示成功

Page 15: Create to blumix docker container with rest api

© 2014 IBM Corporation

Create Container with API

15

Page 16: Create to blumix docker container with rest api

© 2014 IBM Corporation

了解 Create Container 的 REST API 名稱及參數

16

使用這個 API 來Create Container

Page 17: Create to blumix docker container with rest api

© 2014 IBM Corporation

了解 Create Container 的 REST API 名稱及參數

17

Create Container 需要這四個參數 , 其中的 Param 是一個複雜的 JSON structure, 需要特別說明。

請點選此處。

Page 18: Create to blumix docker container with rest api

© 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

Page 19: Create to blumix docker container with rest api

© 2014 IBM Corporation

由 Swagger 產生 Create Container 的命令

19

按下 try it out 可產生 curl 指令。

最終參數如左 , 別忘了填入 X-Auth-Token 及 X-Auth-Project-Id 。

Page 20: Create to blumix docker container with rest api

© 2014 IBM Corporation

在命令列中執行 create container API

20

看到此訊息表示create container 指令已被執行。

Page 21: Create to blumix docker container with rest api

© 2014 IBM Corporation

The container created by REST API is running !!

21

Page 22: Create to blumix docker container with rest api

© 2014 IBM Corporation

Thank you

22

Take me to BluemixClick Here