Jupyter Notebookはブラウザ上でコーディングや実行ができ、
グラフなどの成果物を手軽に共有できるオープンソースのWebアプリケーションです。
GitHub( jupyter/notebook )
コンテナを起動する
DockerイメージはDocker Hub( jupyter )に公開されています。
起動コマンド
jupyter/datascience-notebookを使用しています。
$ sudo docker run -d --name jupyter-notebook \
--user=root \
-e NB_UID=$(id -u) \
-e NB_GID=$(id -g) \
-e GRANT_SUDO=yes \
-p 8888:8888 \
-v /home/hoge/fuga:/home/jovyan/share \
jupyter/datascience-notebook
8888
)をホストマシンの空きポート番号とするvホスト側(/home/hoge/fuga
)のhoge
をあなたのユーザ名、fuga
を配下のお好きなディレクトリとする。成果物を出力するコンテナ内のディレクトリ(
home/jovyan/share
)としてマウントされます。成果物がコンテナ内に生成されると何かと不便ですので、volume設定しています。
さらに、マウントされたdockerホスト側ディレクトリのファイルをコンテナ内で読み書きできるよう、コンテナ内はrootユーザで動作するようにしています。
これをしないとコンテナ内からvolume領域にファイルを生成できません。
token取得
取得コマンド
docker exec -it jupyter-notebook jupyter notebook list
実行すると以下のようなtoken付きのURLが表示されます。
このURLにアクセスするとWeb画面を使用できます。
http://localhost:8888/?token=123456789012345678901234567890
コンテナ外からアクセスする場合は以下のようなURLになります。
http://{コンテナのIPアドレス}:{コンテナ内のport}/?token={トークン}
コンテナ内のportは固定値で8888です。
コンテナのIPアドレスは以下コマンドで調べられます。
docker inspect jupyter-notebook | grep IPAddress
もしくは以下でもアクセスできます。
http://{ホストマシンのIPアドレス}:{ホスト側のport}/?token={トークン}
Web画面上で/share配下に新規ファイルを作成してみて、ホストマシンのディレクトリ(/home/hoge/fuga)に生成されていれば成功です。
ボリューム設定により、コンテナ内だけでなく、
ホストマシン側ディレクトリでファイルの入出力ができますので、
入力データを格納したり成果物を共有するのに便利です。