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
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. レポジトリ名前空間の作成
$ 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. 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環境も使用していると、混乱しそうなので、
今回は環境変数の設定をしない方法を使う
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. 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. 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アドレス コンテナ名
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
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. 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. 実行
実行方法はこれまでと同一
$ 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. 実行
$ 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で表示されたコン
テナ名
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. 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