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

Create to blumix docker container with rest api

Embed Size (px)

Citation preview

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