Bluemix Containerを使ってJupyter NotebookをBluemix上で起動してみる
投稿者:アナリティクス編集者
今回はデータサイエンティスト向け開発環境「Jupyter Notebook」を、Bluemix Container上で起動する方法をご紹介したいと思います。
Bluemixではコンテナーを利用することが出来ます。
例えばDocker等で作成したコンテナーイメージをBluemix上にアップロードして起動することが可能です。
今回は、Docker Hubからjupyter/datascience-notebookイメージをローカル環境にpullして、Bluemixにアップロード&起動する方法を簡単に纏めましたた。
注意事項
今回ご紹介する手順は「Windows64bit」環境または、「Mac」環境のみ対応しております。
(理由:Bluemixが提供しているツールが上記環境しか提供していないため)
下記で紹介する手順は「Mac」での方法となりますので、Windows64bit環境の方は読み替えて実施頂けたら幸いです。
準備(必要なコマンドやツールをインストール)
以下が今回必要なツール&コマンド類です。
今回の手順では以下のツールやコマンドの導入は省略させて頂きますので、ご了承ください。
- docker:ローカル環境でdockerを利用するために必要です
- kitematic(2017年5月時点ではbeta版):dockerイメージのpullやコンテナーの起動等がGUIで出来るツールです
- bluemix cli:cliでbluemixを操作するためのツールです
- IBM Bluemix Container Service plug-in (bx ic):ローカル環境のコンテナーイメージをBluemixへアップロード等の操作が可能になる追加プラグインです(リンク先の「⑥」・「⑦」を参照)
Bluemixでjupyterを起動するまでの流れ
- docker hubからjupyter/datascience-notebookをローカル環境へダウンロード(pull)する
- ローカル環境でjupyterが起動する事を確認(kitematicを利用)
- Bluemixへコンテナーイメージをアップロード
- Bluemixのカタログからアップロードしたコンテナーイメージをオーダーし、起動する
- Bluemix上でjupyterにアクセスしてみる
docker hubからjupyter/datascience-notebookをローカル環境へダウンロード(pull)する
docker hubからコンテナーイメージのダウンロードは簡単です。以下のコマンドを実行してください。
(インターネット環境によりますが、1時間〜数時間程かかりますのでご注意ください)
docker pull jupyter/datascience-notebook
もしくは、「kitematic」を使ってイメージのダウンロードも可能です。
「kitematic」上で「+ NEW」ボタンをクリックすると、画面上にdockerイメージの一覧が表示されます。
検索窓に「jupyter datascience」と入力すると、jupyterのイメージが一覧で表示されますので、対象イメージのボックスに表示された「CREATE」ボタンをクリックしてください。
ローカル環境でjupyterが起動する事を確認(kitematicを利用)
インストールが完了するとkitematic上のコンテナーリストに「jupyter/datascience-notebook」が表示されます。
コンテナーリストに表示された「datascience-notebook」をクリックし、画面上に表示された「START」ボタンをクリックします。
正常に起動すると、「CONTAINER LOGS」画面に以下のようなログが出力されます。
実際のローカル環境で起動しているコンテナー上のjupyterにアクセスしてみたいと思います。
「WEB PREVIEW」下に表示されているボタン(アクセスボタン)をクリックします。
自動的にコンテナー上のjupyterにアクセスが可能です。
補足
ログインするために必要な「Password or token」ですが、初回時にはパスワードは設定されていないため「token」でのログインになります。
「token」は「CONTAINER LOGS」に表示された下記の部分で「token=218da43c2a41cf9b2343e109873eace6485578b144d9ad3d」の「218da43c2a41cf9b2343e109873eace6485578b144d9ad3d」がtokenになります。
このtokenを先程のログイン画面のテキストボックスに入力することでログインが可能です。
パスワードの設定手順については、後ほどご紹介致します。
[I 02:56:33.460 NotebookApp](B Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 02:56:33.462 NotebookApp] Copy/paste this URL into your browser when you connect for the first time, to login with a token: http://localhost:8888/?token=218da43c2a41cf9b2343e109873eace6485578b144d9ad3d
Bluemixへコンテナーイメージをアップロード
前準備としてイメージを保存するレポジトリをBluemix上で作成します。
大島が利用している環境は既にリポジトリーが作成しているため、本ブログで詳細な手順をご紹介出来ませんが、Qiita等で手順が紹介されておりますので良ければ確認して見てください。
IBM Bluemix Container Serviceを少しだけ触ってみる(途中)
それでは、実際の手順をご紹介します。
以下がBluemix上で公開されている手順になります。
この手順に沿って以下のコマンドを実行します。
(「IMAGE ID」は「docker image」コマンドから取得できます。下記の手順をご参考ください)
# bluemix login -a https://api.ng.bluemix.net -u <ログインID> -o <組織名> -s <スペース名> # bluemix ic init # docker images REPOSITORY TAG IMAGE ID CREATED SIZE jupyter/datascience-notebook latest 8c5a40c1eb1b 2 weeks ago 6.84 GB # docker tag 8c5a40c1eb1b registry.ng.bluemix.net/<レジストリ名>/jupyter:jupyter # docker push registry.ng.bluemix.net/<レジストリ名>/jupyter:jupyter
「docker push 〜」コマンドの実行が完了したら、Bluemixへログインを行い「カタログ→コンテナー」とアクセスしてください。
カタログのメニューの中に「docker push」でアップロードしたイメージが表示されるようになります。
カタログに表示されたjupyterをクリックして、オーダーが画面に移ります。
「コンテナー名」、「サイズ(コンテナー上で起動しているアプリ要件に従ってサイズを選択してください)」、「パブリックIPアドレス(「要求および〜」を選択してください)を設定したら、作成をクリックしてください
正常にコンテナーのオーダーと起動が完了すると、コンテナー名横のステータスが「実行中」となります。
コンテナー上のjupyterにアクセスするには「ポート」で表示されている「ポート番号(上記画像では「8888」)」をクリックすると、自動的にjupyterへリダイレクトされます。
ログインに必要なtokenの確認方法ですが、コンテナーの管理コンソールから「モニタリングおよびログ」から確認することが出来ます。
以上で、Bluemix Containerを使ってJupyter NotebookをBluemix上で起動してみる方法のご紹介は終了です。
皆様のご参考になれば幸いです
おまけ パスワードでjupyterにログインするための設定方法
パスワードを設定するためにはBluemix上のコンテナーにログインし、コマンドを使ってパスワードを設定します。
下記のコマンドをご参考ください。
(「bluemix ic exec -it <CONTAINER ID> /bin/bash」を使ってログインを行いますが、「<CONTAINER ID>」は「bluemix ic ps」コマンドで確認が出来ます)
# bluemix ic ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 153a9b8f-fd6 registry.ng.bluemix.net/mfpfdemo/jupyter:datascience-notebook "" 51 minutes ago Running 169.44.0.244:8888->8888/tcp dmeo-jupyter01 # bluemix ic exec -it 153a9b8f-fd6 /bin/bash jovyan@instance-01db09dc:~/work$ jupyter notebook password Enter password: Verify password: [NotebookPasswordApp] Wrote hashed password to /home/jovyan/.jupyter/jupyter_notebook_config.json jovyan@instance-01db09dc:~/work$ exit exit