Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
BluemixでDockerを使う
S.Hanai 2015/7/3
おことわり
本資料の記載内容は、私が個人的に調べた内容であり、正式な日本IBMのテス
トやレビューを受けておりません。内容について、できる限り正確を期すよう
努めてはおりますが、いかなる明示または暗黙の保証も責任も負いかねます。
本資料の情報は...
概要
献立
ß  βの取れたIBM Containersで、Dockerを使ってみる
ß  Dockerの使用方法については基本的なところを理解して
いることが前提で書かれています
βの頃からの違い
ß  コマンドラインツールは、iceコマンドからcf tools(現在
は、Cloud Foundry CLIと呼ばれている。以降、cf cliと省
略)のプラグインに変更
ß  これまで通り、iceコマンドも使える
ß...
コマンドラインツールの
インストール
前提条件
ß  Docker 1.6以上
ß  cf cli 6.11.3以上
ß  IBM Containers Cloud Foundry plug-in
今回はクライアント側にUbuntu 14.04 64bitを使用します。
Ma...
Dockerのインストール
$ sudo –s
# echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/
docker.list
# apt-k...
cf cliをインストール
ß  念のため古いものを削除
$ sudo apt-get remove cf-cli
ß  https://github.com/cloudfoundry/cli/releases から、
Debian 64b...
IBM Containers Cloud Foundry plug-in
のインストール
ß  以下を実行
$ cf install-plugin
http://static-ice.ng.bluemix.net/ibm-containers...
ログイン
CFのログイン
$ cf login
API endpoint: https://api.ng.bluemix.net
Email> xxxxx@xxx.com
Password>
Authenticating...
OK
Targeted o...
レポジトリ名前空間の作成
$ cf ic namespace set 名前空間名
registry.ng.bluemix.net/自分が付けた名前空間名 がレポジトリのURLと
なります。Bluemix内で一意な名前でなければなりません。
一度...
IBM Containersへのログイン
$ cf ic login
** Retrieving client certificates from IBM Containers
** Storing client certificates in...
コンテナの実行
試しにibmlibertyを起動
$ cf ic run -p 9080 registry.ng.bluemix.net/ibmliberty
859589e2-56b0-491a-b9e5-9bb9f0060ec9
cf ic runで起動
...
public ipの割り当て
ß  2015/7/3時点、cf ic runで実行した時に、public ipが自
動で割り当てられるケースと、割り当てられないケース
がありました
ß  このため、cf ic runした後に、public ...
public ipの割り当て
ß  もしも割り当たっていなければ、以下のようにして割り
当てる
$ cf ic ip request
Successfully obtained ip: "134.168.1.155"
ipアドレスを要求
$ ...
ブラウザで確認する
ß  割り当てられたpublic ipにアクセス(ポートは9080)
停止、削除
ß  確認が終わったら、コンテナを停止、削除する
$ cf ic stop suspicious_lalande
suspicious_lalande
$ cf ic ps
CONTAINER ID IMAGE COMMAND C...
public imageを動かす
public imageを動かす
ß  2015/7/5時点、public imageを直接実行することはでき
ない
$ cf ic run -d -p 80 registry.hub.docker.com/nginx
Error respo...
public imageをprivateレポジトリにコ
ピーする
$ cf ic cpi nginx registry.ng.bluemix.net/ruimo/nginx
イメージのコ
ピーコマンド
Docker公式レポジトリでの名前
コピー...
実行
実行方法はこれまでと同一
$ cf ic run -d -p 80 registry.ng.bluemix.net/ruimo/nginx
37436d34-97f8-4420-b18e-4ba1e691c92d
$ cf ic ps
C...
実行
$ cf ic ip list
Successfully Connected
Number of allocated public IP addresses: 1
IpAddress ContainerId
134.168.1.155
空...
確認
今回はport 80を指定したので、IPアドレスの
みを指定すればok
自分でDockerfileを作る場合
自分でDockerfileを作る
FROM ubuntu:14.04
MAINTAINER Shisei Hanai<ruimo.uno@gmail.com>
RUN 
apt-get update && 
apt-get install -y...
ビルド
$ docker build -t ruimo/mynginx .
Dockerfileが存在するディレクトリで実行
ローカルで確認
$ docker run -d -p 80:80 ruimo/mynginx
起動したらブラウザで確認...
Bluemixのprivateレポジトリにdocker
imageをコピー
ß  ドキュメント上は、cf ic cpiでローカルのイメージをコ
ピーできるように読めるが、2015/7/3時点では、
Docker公式レポジトリにあるものしかコピ...
Bluemix上で実行
$ cf ic run -p 80 registry.ng.bluemix.net/ruimo/mynginx
実行方法は、これまでと同じ
$ cf ic ps
CONTAINER ID IMAGE COMMAND CR...
実行の確認
ブラウザで確認
今後の予定
ß  ボリューム機能
ß  コンテナ間リンク機能
ß  オートスケール機能
Upcoming SlideShare
Loading in …5
×

βが取れたBluemixのDockerを使ってみる(基本編)

4,649 views

Published on

BluemixのIBM Containers

Published in: Engineering

βが取れたBluemixのDockerを使ってみる(基本編)

  1. 1. BluemixでDockerを使う S.Hanai 2015/7/3
  2. 2. おことわり 本資料の記載内容は、私が個人的に調べた内容であり、正式な日本IBMのテス トやレビューを受けておりません。内容について、できる限り正確を期すよう 努めてはおりますが、いかなる明示または暗黙の保証も責任も負いかねます。 本資料の情報は、使用先の責任において使用されるべきものであることを、あ らかじめご了承ください。
  3. 3. 概要
  4. 4. 献立 ß  βの取れたIBM Containersで、Dockerを使ってみる ß  Dockerの使用方法については基本的なところを理解して いることが前提で書かれています
  5. 5. βの頃からの違い ß  コマンドラインツールは、iceコマンドからcf tools(現在 は、Cloud Foundry CLIと呼ばれている。以降、cf cliと省 略)のプラグインに変更 ß  これまで通り、iceコマンドも使える ß  cf cliのプラグインだと、以下が改善されている Þ  Pythonのインストールが不要 Þ  ネイティブのDockerコマンドが使える
  6. 6. コマンドラインツールの インストール
  7. 7. 前提条件 ß  Docker 1.6以上 ß  cf cli 6.11.3以上 ß  IBM Containers Cloud Foundry plug-in 今回はクライアント側にUbuntu 14.04 64bitを使用します。 Mac/Windows環境の場合は、VirtualBoxを使用するか、BluemixのVMを使用し てください。
  8. 8. Dockerのインストール $ sudo –s # echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/ docker.list # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 # apt-get update # apt-get install apparmor lxc-docker # usermod -a -G docker shanai 自分のユーザ名 グループ設定を反映させるため、一度ログオフしてログインし直します
  9. 9. cf cliをインストール ß  念のため古いものを削除 $ sudo apt-get remove cf-cli ß  https://github.com/cloudfoundry/cli/releases から、 Debian 64bitを入手します(現在は、v6.12.0) wget -O cf_cli.deb https://cli.run.pivotal.io/stable? release=debian64&version=6.12.0 ß  インストール $ sudo dpkg –i cf_cli.deb $ cf –version cf version 6.12.0-8c65bbd-2015-06-30T00:10:31+00:00
  10. 10. IBM Containers Cloud Foundry plug-in のインストール ß  以下を実行 $ cf install-plugin http://static-ice.ng.bluemix.net/ibm-containers-linux_x64 ß  確認 $ cf plugins Listing Installed Plugins... OK Plugin name Version Command name Command Help IBM-Containers 0.8.598 ic IBM-Containers Plugin
  11. 11. ログイン
  12. 12. CFのログイン $ cf login API endpoint: https://api.ng.bluemix.net Email> xxxxx@xxx.com Password> Authenticating... OK Targeted org shanai@jp.ibm.com ... API endpoint: https://api.ng.bluemix.net (API version: 2.27.0) User: xxxxx@xxx.com Org: xxxxx@xxx.com Space: dev 普段Bluemixへのログイン に使用しているもの
  13. 13. レポジトリ名前空間の作成 $ cf ic namespace set 名前空間名 registry.ng.bluemix.net/自分が付けた名前空間名 がレポジトリのURLと なります。Bluemix内で一意な名前でなければなりません。 一度設定したら変更できません!!! 慎重に名前を選んでください $ cf ic namespace set ruimo2 Command failed - Could not connect to IBM Containers Cannot assign namespace to org: ruimo2. Namespace is already set to: ruimo $ cf ic namespace get ruimo registry.ng.bluemix.net/自分が付けた名前空間名 が レポジトリのURLとなります。以降、ruimoの部分 を自分の名前空間名に読み替えてください
  14. 14. IBM Containersへのログイン $ cf ic login ** Retrieving client certificates from IBM Containers ** Storing client certificates in /home/shanai/.ice/certs Successfully retrieved client certificates ** Authenticating with registry at registry.ng.bluemix.net Successfully authenticated with registry Your private Bluemix repository is registry.ng.bluemix.net/ruimo このあとコマンドの実行の仕方が2つ表示される。環境変数を設定する ことで、dockerコマンドを直接使ってBluemixを操作するようにもでき るが、Bluemix以外のDocker環境も使用していると、混乱しそうなので、 今回は環境変数の設定をしない方法を使う
  15. 15. コンテナの実行
  16. 16. 試しにibmlibertyを起動 $ cf ic run -p 9080 registry.ng.bluemix.net/ibmliberty 859589e2-56b0-491a-b9e5-9bb9f0060ec9 cf ic runで起動 (ドキュメントによると、registry.ng.bluemix.net/の部分は省略できるはずだが、 2015/7/3時点では指定しないとエラーになる) $ cf ic ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 859589e2-56b registry.ng.bluemix.net/ibmliberty:latest "" 5 seconds ago Running 9080/tcp sleepy_bardeen cf ic psで確認 7/3時点、コンテナ IDの表示がおかしい ので注意 コンテナIDの表示に問題があるので、コンテナを対 象としたコマンドは、こちらの名前を使用する(cf ic runの時に、--name xxxパラメータで好きなものを指 定できる。省略すると勝手に名前が付く)
  17. 17. public ipの割り当て ß  2015/7/3時点、cf ic runで実行した時に、public ipが自 動で割り当てられるケースと、割り当てられないケース がありました ß  このため、cf ic runした後に、public ipが割り当たってい るか確認して、割り当たっていなければ、割り当ててや ります ここにip addressが表示されれば、 public ipは割り当てられている $ cf ic ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81e3fcf8-458 /ibmliberty:latest "" About an hour ago Running 134.168.1.155:9080->9080/tcp suspicious_lalande
  18. 18. public ipの割り当て ß  もしも割り当たっていなければ、以下のようにして割り 当てる $ cf ic ip request Successfully obtained ip: "134.168.1.155" ipアドレスを要求 $ cf ic ip bind 134.168.1.155 suspicious_lalande Successfully bound IP バインドする ipアドレス コンテナ名
  19. 19. ブラウザで確認する ß  割り当てられたpublic ipにアクセス(ポートは9080)
  20. 20. 停止、削除 ß  確認が終わったら、コンテナを停止、削除する $ cf ic stop suspicious_lalande suspicious_lalande $ cf ic ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 81e3fcf8-458 registry.ng.bluemix.net/ibmliberty:latest "" About an hour ago Shutdown 134.168.1.155:9080->9080/tcp suspicious_lalande ここがShutdownになるまで待つ $ cf ic rm suspicious_lalande suspicious_lalande
  21. 21. public imageを動かす
  22. 22. public imageを動かす ß  2015/7/5時点、public imageを直接実行することはでき ない $ cf ic run -d -p 80 registry.hub.docker.com/nginx Error response from daemon: Image not found Invalid IBM-Containers commands or docker commands. Available IBM Containers commands are {login, group, ip, route, volume, namespace, info} In addition, IBM Containers supports native docker cli passthrough, run cf ic help for more details ß  このため、一度自分のprivateレポジトリにコピーしてか ら実行する
  23. 23. public imageをprivateレポジトリにコ ピーする $ cf ic cpi nginx registry.ng.bluemix.net/ruimo/nginx イメージのコ ピーコマンド Docker公式レポジトリでの名前 コピー先のprivateレポジトリ $ cf ic images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.ng.bluemix.net/ruimo/nginx latest 691ae02b-147 2 minutes ago 0 B コピーされた
  24. 24. 実行 実行方法はこれまでと同一 $ cf ic run -d -p 80 registry.ng.bluemix.net/ruimo/nginx 37436d34-97f8-4420-b18e-4ba1e691c92d $ cf ic ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 37436d34-97f registry.ng.bluemix.net/ruimo/nginx:latest "" 38 seconds ago Running 80/tcp focused_lovelace public ipが割り当たっていないので、割り当てが必要
  25. 25. 実行 $ cf ic ip list Successfully Connected Number of allocated public IP addresses: 1 IpAddress ContainerId 134.168.1.155 空きIP(空きが無い時は、cf ic ip requestで取得する) $ cf ic ip bind 134.168.1.155 focused_lovelace Successfully bound IP 割り当て実行 cf ic psで表示されたコン テナ名
  26. 26. 確認 今回はport 80を指定したので、IPアドレスの みを指定すればok
  27. 27. 自分でDockerfileを作る場合
  28. 28. 自分でDockerfileを作る FROM ubuntu:14.04 MAINTAINER Shisei Hanai<ruimo.uno@gmail.com> RUN apt-get update && apt-get install -y nginx && echo 'It works' > /usr/share/nginx/html/index.html EXPOSE 80 CMD ["/usr/sbin/nginx", "-g", "daemon off;"] nginxを使って静的コンテンツを公開するDockerfile
  29. 29. ビルド $ docker build -t ruimo/mynginx . Dockerfileが存在するディレクトリで実行 ローカルで確認 $ docker run -d -p 80:80 ruimo/mynginx 起動したらブラウザで確認 (GUIが無い時は、sshでポート転 送するか、w3mなどで確認する) 左は w3m http://localhost を実 行した結果 w3mは、sudo apt-get install w3m でインストールできる
  30. 30. Bluemixのprivateレポジトリにdocker imageをコピー ß  ドキュメント上は、cf ic cpiでローカルのイメージをコ ピーできるように読めるが、2015/7/3時点では、 Docker公式レポジトリにあるものしかコピーできない ß  このため、再度ビルドを行う $ cf ic build -t ruimo/mynginx . $ cf ic images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.ng.bluemix.net/ruimo/mynginx latest 07c04479-39c 2 minutes ago 0 B 2015/7/3時点、ビルド中になぜか" ---> Running in 48d403e628cd"と表示され て実行が始まってしまうことがある。この場合は、Ctrl+Cで中断してリトライ する。
  31. 31. Bluemix上で実行 $ cf ic run -p 80 registry.ng.bluemix.net/ruimo/mynginx 実行方法は、これまでと同じ $ cf ic ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e7f69ca8-b50 registry.ng.bluemix.net/ruimo/mynginx:latest "" About a minute ago Running 80/tcp compassionate_almeida $ cf ic ip list Successfully Connected Number of allocated public IP addresses: 1 IpAddress ContainerId 134.168.1.155 $ cf ic ip bind 134.168.1.155 compassionate_almeida Successfully bound IP
  32. 32. 実行の確認 ブラウザで確認
  33. 33. 今後の予定 ß  ボリューム機能 ß  コンテナ間リンク機能 ß  オートスケール機能

×