在IBM Bluemix 建立客制化 Docker Container

来源:互联网 发布:打印机wsd端口ip 区别 编辑:程序博客网 时间:2024/05/18 00:40

在IBM Bluemix 建立客制化 Docker Container

作者 :陳兆麟 Email:chenlin2@ms9.hinet.net

在云端服务环境下,容器(Container)技术的应用,越来越重要,现在开始有更多系统厂商推出企业级容器解决方案,IBM推出了企业级的容器云端服务,称为IBM Containers,可协助用户在混合云的环境下,也能顺利让应用系统上线。这套新的服务,主要基于Docker的技术,以及IBM经营的平台即服务Bluemix,而Bluemix本身应用了Cloud Foundry和OpenStack的软件。有了IBM Containers,开发者可在Bluemix的环境当中,藉由Docker的技术来部署所要的容器,而不需要仰赖虚拟机器的部署与管理,你只要设定Docker引擎,或管理你自己的登录即可。由于 Blumix 有 1 个月的免费使用期限 (免刷卡),对于想了解 Docker 的初学者比较有利,以下范例是在 Bluemix 建立及删除 Dcoker Container 的实际操作 (stp by step)

作業環境:Win7 (64 bit),bluemix, Toolbox,docker

操作步驟:

1.從 GitHub 儲存庫下載 Cloud Foundry CLI 6.12.0 (cf-cli-installer_6.12.1_winx64.zip)(https://cli.run.pivotal.io/stable?release=windows64&version=6.12.1&source=github-rel) 解壓縮為 cf_installer.exe 並在 win7 命令列執行 cf_installer.exe

2. C:\>cf -v (驗證版本)

cf version 6.12.1-56792aa-2015-07-06T15:47:46+00:00

3.進入IBM Bluemix: https://console.ng.bluemix.net/ 註冊後登錄(30天試用期免費) 將 username 及 password 記錄

4.地區選擇 [美國南部]

5.建立空間,輸入空間名稱 test

6. 安裝 Docker Toolbox (https://www.docker.com/products/docker-toolbox)

7.桌面點選

$docker-machine ls (Docker Quickstart Terminal介面執行,確認虛擬機default 已安裝)

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default virtualbox Running tcp://192.168.99.101:2376 v1.10.3

$ docker-machine env default

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\slim1\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default)

$ eval $("C:\Program Files\Docker Toolbox\docker-machine.exe" env default)

NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.101:2376 v1.10.3

8. 取得 default虛擬機的 IP

$ docker-machine ip default
192.168.99.101

9.建立映像檔登錄名稱空間:點選新增專屬項目/c/Users/user/ictest

輸入:ruby (寫入後無法變更)

(一個組織對應一名稱空間)

10.Win7 不支援 cf ic login (for linux & Mac only) 所在 win7 系統以下指令無法使用

11.Win7 使用cf安裝 ibm-container plugin失敗,所以必須安裝reachlin/bluemix image

a. 事先在 /c/Users/user/ictest目錄編輯 Dockerfile 檔案:

FROM ubuntu:latest
RUN apt-get update
RUN apt-get -y install nodejs nodejs-legacy npm

b. 將 /c/Users/user/ictest 掛載在 bluemix container: /home/blue 之下

$ docker run --name bluemix -d --privileged -v /c/Users/user/ictest:/home/blue reachlin/bluemix

$ docker images

reachlin/bluemix latest 2eabb9b14f3f 7 weeks ago 259.8 MB

$ docker ps (驗證 bluemix container已啟動)

b0764cdcd78f reachlin/bluemix “dockerd-entrypoint.s” 45 minutes ago 2375/tcp bluemix

$ docker exec -it bluemix bash (進入bluemix container shell 交談)

root#ls /home/blue (/c/Users/user/ictest已掛載至 /home/blue )

(將掛載於 /home/blue/Dockerfile copy 至 /blue)

root#cp -r /home/blue /blue

root#cf login -u liuchenwangxxxx@gmail.com -p xxxxxxxx -o \

"liuchenwangxxxx@gmail.com" -s test -a api.ng.bluemix.net (指令同一行)

-u: isername (步驟 3)
-p: password (步驟 3)
-o: 組織 (步驟 4)
-s: 名稱空間 (步驟 5)

c. root#cf ic init

d. root#cf plugins (驗證 IBM-Containers 已安裝)

Plugin Name Version Command Name Command Help
IBM-Containers 0.8.788 ic IBM Containers plug-in

e. root#cf ic images (顯示在 Bluemix repository 內的 images)

registry.ng.bluemix.net/ibmnode v1.2 84efce0c747b 2 weeks ago 465.2 MB

12. 在 bluemix 建立 ictest container

root#cf login -a api.ng.bluemix.net

API endpoint: api.ng.bluemix.net
Email> liuchenwangxxxx@gmail.com (步驟 3)
Password>xxxxxxxx

root#cf ic login

root#cf ic namespace get

 ruby (名稱空間)

13.在 bluemix container 建立 ictest images

root#cd /blue

root#cf ic build -t registry.ng.bluemix.net/ruby/ictest .

root#cf ic images (驗證在 bluemix container所產生的 images)

REPOSITORY TAG IMAGE ID CREATED SIZE
registry.ng.bluemix.net/ruby/ictest latest edbf549bcfaf 8 seconds ago 489.5 MB

驗證 ictest docker image 已產生

14.建立 container

root#cf ic run --name ic1 -p 80:80 -p 443:443 -i -t registry.ng.bluemix.net/ruby/ictest

(回至 blumix 儀表板,驗證 ic1 container 已產生)

15.停止 ic1 container

root#cf ic stop ic1

16.移除 ic1 container

root# cf ic rm ic1

17.移除 ictest 映像檔

root#cf ic rmi registry.ng.bluemix.net/ruby/ictest

附錄

1.win7 安裝Docker Toolbox:
http://knight-.iteye.com/blog/2254627
2.win7 安裝 Git
https://cli.run.pivotal.io/stable?release=windows64&version=6.12.1&source=github-rel
3 Docker 架構圖

參考文獻:

  1. http://ict.dst.ibm.com/files/CLD9404.pdf
  2. https://hub.docker.com/r/reachlin/bluemix/
  3. https://developer.ibm.com/answers/questions/190436/ice-login-error.html
  4. http://dockone.io/article/594
  5. http://www.vm.ibm.com/education/lvc/LVC0923.pdf
  6. https://www.youtube.com/watch?v=i7_dQQy40ZQ&feature=youtu.be
  7. http://www.ithome.com.tw/review/97383
  8. https://www.ibm.com/developerworks/cn/opensource/os-cn-docker/
  9. https://developer.ibm.com/answers/questions/201614/how-to-install-the-ice-cli-to-manage-containers-on.html
  10. https://console.ng.bluemix.net/docs/api/content/containers/images/getting_started_containers.svg
0 0