BluemixでDockerを使ってみた

はじめに

BluemixでDockerコンテナを利用できる「IBM Containers」を使うまでのメモです。

IBM Containersを利用するためのCLIには、IBM Containers Plugin(dockerコマンドのラッパーのような感じ)と、ICE (IBM Containers Extention) (コマンド単体でIBM Containersを操作できる)が用意されていますが、この記事では IBM Containers Plugin の導入から使用方法について記載します。

また、Bluemix利用の前提となる、cfコマンドは導入済みの前提で記載します。

テスト環境

  • Debian (jessie)
  • Docker version 1.8.1, build d12ea79
  • cf version 6.12.2-24abed3-2015-07-15T21:21:01+00:00

IBM Containers Plugin 利用時の前提条件

  • Docker 1.6 or 1.7 (試したところ、1.7.1, 1.8.1でも動きます)
  • Cloud Foundry CLI version 6.11.3以上

IBM Containers Plugin のインストール

まず、cf logoutします。

Linux 64bit 環境の場合は、以下のコマンドでPluginをインストール

Pluginがインストールされているか確認

ログイン

まず、cf loginでBluemixにログインします。

cf icコマンドが利用できるようになっています。

次に、cf ic loginで IBM Containers にログインします。

すると、namespaceを設定するように言われるので、設定します。

namespaceの設定

IBM Containers 利用時には、Bluemix レジストリー内で固有の namespace の設定が必要です。

次のコマンドで IBM Containers で利用する namespace を設定します。
一度 namespace を設定すると変更できないようなのでご注意ください。

確認

namespaceの制約

  • 使用できるのは、小文字、数字、下線 (_) のみ
  • 4 文字から 30 文字までの長さ
  • Bluemix レジストリー内で固有

namespaceの登録については、BluemixのWebダッシュボードから「コンテナーの開始」を選択してもおそらく同様のことができるかと思います。

その後、再度cf ic loginすることで IBM Containers にログインできます。

コマンドの説明に記載されているとおり、cf icの後にDockerのコマンドを指定して使う方法と、IBM Container接続用の環境変数を設定し、dockerコマンド自体の接続先をIBM Containersに変更して使う方法があります。

自分の場合は、ローカルでもDockerサーバを動かしているので、cf icコマンドを使います。

各種コンテナ操作

cf icのあとに続けてDockerのコマンドを入力すれば、だいたい想定通りに動きます。

IBM Containers側でDockerfileからイメージをビルドする場合は、リモートにDockerfileを送信したあとにビルドすることに注意してください。(ローカルのファイルをADDするようなことができないため、必要なコードはGithubから取得する等してリモートでビルドできるように意識する必要があります)

イメージの確認

cf ic imagesで利用可能なイメージを確認します。

コンテナ起動時のながれ

試しに、最初からDockerイメージが用意されている、registry.ng.bluemix.net/ibmlibertyを起動してみます。

以降の手順のおおまかな流れは以下の通りです。

  • コンテナの起動
  • パプリックIPの取得(まだの場合)
  • パブリックIPのコンテナへの割り当て

コンテナの起動

ibmlibertyは9080番ポートをlistenしてアプリが起動するため、-p 9080を指定しておきます。

コンテナの状態を確認します。

IPアドレスが割り当てられていないため、取得して割り当てます。

再度、コンテナの状態を確認

PORTSの部分が134.168.16.122:9080->9080/tcpとなっており、パブリックIPが割り当てられていることが分かります。

この状態で、134.168.16.122:9080にブラウザ等からアクセスすると起動したコンテナを確認できます。

コンテナの停止

コンテナを停止する場合には、割り当てたIPアドレスをアンバインドしてコンテナを停止・削除します。

その他

認証エラー発生時

複数環境からログインして利用している関係かとは思いますが、コマンドで認証エラーとなった場合には、cf logincf ic loginを再度実行することで正常に動作します。

プラグインバージョン 0.8.702 について

バージョン 0.8.702 のプラグインは手元では正常に動作しませんでした。一日で 0.8.704 にアップデートされたので、プラグインの不具合かもしれません。同バージョンを利用していて、うまく動かないという方はプラグインをアップデートしてみてください。

コンテナの再起動について

IBM Containersでは、Dockerの--restartオプションは指定できません。コンテナ停止時の再起動が必要な場合はIBM Containersに用意されている、コンテナグループという仕組みを利用します。

詳細は、コンテナー・グループの作成をご確認ください。

IBM Containers Plugin のアップデート

アップデートの有無は以下のコマンドで確認できます。

自動でアップデートされるわけではなく、アップデートの有無が分かるだけのようで、アップデート時には、一旦プラグインを削除して再度インストールすることになります。(2015年8月現在)

参考

シェアする

  • このエントリーをはてなブックマークに追加

フォローする