Bluemix コンテナーにDockerイメージを公開する

Bluemixにはコンテナーという物もありますので、そっちにDockerイメージを載せてみました。

#コンテナーの開始
ダッシュボードからコンテナーの開始を押します。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/75a613cb-465a-099c-f8d7-f74b9e20f6ac.png)

##イメージの選択
初期状態で用意されてるコンテナが４つあります。ここでは違うDockerイメージを使いたいので＋アイコンを押します。（事前に入手したDockerイメージがあるとマイ組織として表示されます）
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/637f203f-de5a-1ebb-1620-aa19efb5616e.png)

##名前空間の設定
自分用の名前空間を決めます。ガイドの通り一度決めると変える事ができません。しかしこの名前は公開URLに表示される訳ではないので、あまりこだわる必要はありません。（私は迂闊にもtest001にしちゃいました :disappointed: ）
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/68aa6c49-e94b-15bd-f07d-c0d907618b7f.png)

ここでガイドが表示されますが、ここを読むとまずは自前でDockerイメージを`build`してそれを`push`してから`cf ic run`しなさいとあります。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/8e81aae1-67ab-b99c-757c-187c4d9fe3ab.png)
私はWindows環境なのでDockerイメージを作れません。まずDockerイメージを作るためにVirturalBoxをインストールして仮想マシンを作って・・・となると本末転倒なのでここでは手順を変えてDockerHubのイメージをpushしようと思います。
（手順では最初に`cf login`を済ませる必要があります。CFコマンド未導入の方はまず[コチラ](http://qiita.com/Hideyasu_Yamazaki/items/d0aab535d92131490ce7)を御覧ください。）

#プラグインのインストール
ダウンロードリンクを押すと、プラグインのインストールガイドが開きます。
##Dockerコマンドのインストール
まずはプラグインの前にDockerコマンドをインストールせよとあります。私はWindows7 64bitなので図のもを選択。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/e2097f1b-e72a-bc34-d38a-3d9dcf6a18e9.png)
**ここで注意** リンクを押すとその物ズバリdocker-1.8.1.exeファイルがダウンロードされます。icプラグインは`docker`コマンドをcallするので、docker.exeにリネームのうえ、PATHの通ったディレクトリに配置します。どこに置けばよいか迷った場合はCFコマンドのディレクトリに放り込めば良いでしょう。（私はそうしました）

##icプラグインのインストール
CFコマンドが無い人はまずCFコマンドを入れろとありますが、ここで入れるとloginの引数で迷うので[コチラ](http://qiita.com/Hideyasu_Yamazaki/items/d0aab535d92131490ce7)の手順をお勧めします。
icプラグインのインストールはCFコマンドを使ってコマンドラインから入力します。私はWindows7 64bitなので図の行をコピーしてコマンドプロンプトに貼り付けます。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/d3a0cdf8-2071-9d1c-6474-03fee850e474.png)
無事入りました。手順に従って`cf ic login`も済ませます。
「cf icコマンド≒dockerコマンド」である事がガイドからなんとなく分かります。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/c0231058-966c-9c35-4efa-5d38a58307de.png)

#Dockerイメージのコピー
通常dockerイメージの入手は`docker pull`コマンドを使用しますが、bluemixコンテナの場合はローカルPCではなく、コンテナにイメージを送る必要があります。コマンドは、
`cf ic cpi [DockerHUBイメージ名] registry.ng.bluemix.net/[自分の名前空間]/[イメージ名]`です。
取得したimageは`cf ic images`で確認できます。以下私の様子です。/test001/が私が入手した物で他が最初から入ってるイメージです。
```C:\>cf ic images
REPOSITORY                                        TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
registry.ng.bluemix.net/test001/reichat           latest              b700e4d33bd7        7 days ago          176.9 MB
registry.ng.bluemix.net/test001/redmine           latest              427dbc20df0a        8 days ago          448.5 MB
registry.ng.bluemix.net/test001/gitbucket         latest              a4d66e57d54a        9 days ago          514.3 MB
registry.ng.bluemix.net/test001/nginx             latest              5135500ec6a1        9 days ago          132.7 MB
registry.ng.bluemix.net/ibm-mobilefirst-starter   latest              5996bb6e51a1        6 weeks ago         770.4 MB
registry.ng.bluemix.net/ibm-node-strong-pm        latest              ef21e9d1656c        8 weeks ago         528.7 MB
registry.ng.bluemix.net/ibmliberty                latest              2209a9732f35        8 weeks ago         492.8 MB
registry.ng.bluemix.net/ibmnode                   latest              8f962f6afc9a        8 weeks ago         429 MB
```

#イメージを動かす
イメージが配置されれば続きはWeb画面の方が簡単に操作できます。（が、無応答になる事が多く、現状では`cf ic`コマンドの方が堅実な動作をする印象です）

私は極力簡単に使いたい人なのでWeb画面で操作します。一度ダッシュボードに戻って、コンテナの開始から入手したイメージをクリックします。ここではgitbucketをクリック。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/e51a7e00-1170-64dd-6329-77e5c2b97634.png)
設定画面が開きます。Web画面の良い所はパブリックIPの要求/紐付けが指定できたり、公開ポートをイメージから取得して表示してくれる所です。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/87fc6c3a-1e33-950c-e775-ec8e71e40060.png)

起動完了。IPや公開ポートも表示されます。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/df1e3e00-46d0-b403-cad7-a46c9795299a.png)
ざっと動かした所ちゃんと動いているようです♪
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/f224941c-4c4e-9f9d-a1b8-1c2ae3d52397.png)

#まとめ
DockerHubに公開されているイメージを使ってコンテナを動かす事ができました。
しかし、私のようなWindowsユーザーの場合Dockerイメージを作る事は出来ません。Dockerイメージを作るには別途イメージを作るLinux環境が必要になります。イメージを作る環境としてBluemixの仮想マシンが使えますが、ならばそのままその仮想マシンでイメージを動かした方がdockerコマンドがそのまま(pull→run)使えて便利な気がします（cf icなどdockerとはちょっと違ったコマンドを覚えるのはそれはそれで面倒）。
先の投稿で[仮想マシンでDocker動かす話](http://qiita.com/Hideyasu_Yamazaki/items/e9df34e86a8cfb68127d)をUPしましたが、正直そっちの方が素直で簡単な印象を受けました。 :grin: