Docker Tool BoxによるJupyter環境の作成 ~2.Jupyter Notebookの起動~
前回書いた以下の記事でwindowsにてdockerを使う環境を作ることができた
Docker Tool BoxによるJupyter環境の作成 ~1.Windowsへの導入~
docker環境ができたのでいよいよjupyterを使う準備をしていきたいと思う
準備することは主に以下の3点
- virtual boxの設定
- dockerイメージの取得
- dockerコンテナの起動
1.virtual boxの設定
最初にやっておくと楽なのがvirtual boxの設定を変えておくこと。後々ネックになるのが以下の二点
- メモリ →大量データを読み込む際にメモリ不足となる可能性がある
- 共有ディレクトリのマウント →作成した分析ファイルが消えてしまうのを防ぐためにローカルとマウントする
1.1.メモリの増設
dockerに割り当てられるメモリが規定だと1GBとなっているので、もっと増やしたい場合に実施。
やり方としてはvirtualboxの設定を変えるだけ
docker tool boxをインストールするとvirtual boxも勝手に入るので、検索窓からvirtual boxを起動
するとすでにdefaultという名前で仮想マシンが起動しているので、まずはこれを停止する
docker起動時にメモリ割り当ての量をオプション指定できるが、そもそも仮想マシンへのメモリ割り当てが少ないと分けられるだけのメモリがなくなってしまうので、この段階でメモリを増やしておく
1.2.共有ディレクトリのマウント
dockerのディレクトリとローカルのディレクトリをマウントしておくと、
docker、jupyter上で作ったファイルがローカルに残ることになる。
筆者の場合は不意にdockerやPCが落ちてしまった際にjupyter上で作っていた
ファイルが消し飛ぶことが何度もあったが、この設定をしておくとファイルを守ることができる
手順は以下の記事を参考にしました
Docker toolbox on windows マウント:Dockerコンテナの中でホストのフォルダを見たい
やることとしては、virtual boxの設定→共有フォルダで現在共有フォルダ設定済みの一覧を見ることができる
右側にある追加ボタンを押すと、共有フォルダとして追加することができる
これで仮想マシンとローカルマシンのマウントはできたので、
次はdocker上での設定を実施するためんいdocker tool boxにて以下のコマンドを実施
※c:\work\jupyterというローカルディレクトリをjupyterという名前で仮想マシンにマウントしていますので、jupyter
の部分は自身のマウントしたディレクトリに読み替えてください
jupyterというfolderを作成
$ docker-machine ssh default 'sudo mkdir -p /jupyter'
マウントを実施
docker-machine ssh default 'sudo mount -t vboxsf -o uid=0,gid=0 jupyter /jupyter'
これでdockerコンテナをRunする際に上記を指定するとローカルとマウントした状態とすることができる
2.dockerイメージの取得
jupyter notebookをすぐ使うことができるdockerイメージがあるので、それをダウンロードに挑戦してみる
dockerイメージの種類は以下の記事がキチンとまとめているので参照していただきたい。
JupyterのDockerイメージまとめ
手元でkaggleに挑戦するという前提だと分散昨日はいらないので、
以下のイメージをダウンロード(PCで画像処理するのもきついから本当はtensorflowもいらないのだけど、将来を見据えて)
$ docker pull jupyter/tensorflow-notebook
イメージは4GB以上あるので、しばし待つ必要がある
イメージを取得できたかは以下のコマンドで確認できる
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jupyter/tensorflow-notebook latest 590112b8736d 2 months ago 4.95GB
この状態まできたらいよいよdockerを起動することができるようになる
3.dockerコンテナの起動
以下のコマンドでdockerコンテナを起動することができる
docker run -d --name jupyter_work -v "/jupyter:/home/jovyan/work" -m 3g -p 8888:8888 jupyter/tensorflow-notebook:latest
色々オプション指定しているが、意味としては以下の通り
-d デタッチドで起動
dockerをバックグラウンドで動かすためのオプション
http://docs.docker.jp/engine/reference/run.html#detached-vs-foreground
--name コンテナ名を指定
後からコンテナに対していろいろ操作を行いたい場合、勝手に振られるコンテナIDを使用するよりもコンテナ名を指定した方が何かと楽。
今回はjupyter_work
という名前を使用
-v マウントを指定
dockerコンテナのディレクトリとローカル側(仮想マシン)のディレクトリをマウントする
ローカル側のディレクトリ:dockerコンテナのディレクトリ
で対応を指定できる
今回ローカル側は上記までの手順で作成したディレクトリ、docker側はjupyterのホームディレクトリを指定
-m メモリ指定
使用するメモリの量を指定。今回は大盤振る舞いで3GBを指定
-p ポートの指定
使用するポートを指定する。jupyterは基本的に8888を使うことが多い
イメージ名を指定
dockerコンテナを作る元となるイメージを最後に指定。
コンテナ名:タグ名で指定するので、今回は以下のものを指定することになる
jupyter/tensorflow-notebook:latest
起動の確認
起動に成功した場合、dockerプロセスが存在するので
$ docker ps
で起動中のプロセスを確認できる
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5b45d59d5291 jupyter/tensorflow-notebook:latest "tini -g -- start-no…" 2 hours ago Up 2 hours 0.0.0.0:8888->8888/tcp jupyter_work
また、ログ確認して正しく動いていることを確認
$ docker logs jupyter_work
/usr/local/bin/start-notebook.sh: ignoring /usr/local/bin/start-notebook.d/*
Container must be run with group "root" to update passwd file
Executing the command: jupyter notebook
[W 04:18:43.422 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 04:18:43.482 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.6/site-packages/jupyterlab
[I 04:18:43.482 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 04:18:43.500 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 04:18:43.500 NotebookApp] The Jupyter Notebook is running at:
[I 04:18:43.500 NotebookApp] http://(5b45d59d5291 or 127.0.0.1):8888/
[I 04:18:43.501 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
ログに表示されるURLをブラウザでたたけばいよいよjupyterを使うことができる。
しかしながら、ちなみにログに表示されるIPアドレスだとアクセスができないとのこと。
実は別のIPアドレスが開いているとのこと
以下参考記事
TensorFlowのDockerのJupyterが動かない
IPアドレス部分を上記サイトのコマンドに切り替えたことでjupyterの画面を開くことができる
ここまでできれば後は市井に転がっている手順でデータ分析を実施することができるようになりますので、
ぜひ楽しいデータサイエンスライフを過ごしてください1
Author And Source
この問題について(Docker Tool BoxによるJupyter環境の作成 ~2.Jupyter Notebookの起動~), 我々は、より多くの情報をここで見つけました https://qiita.com/daisuke19891023/items/46feef18aeb9744a6a38著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .