JupyterLab を起動する方法
事前にカレントディレクトリ下に「workspace」という名前のディレクトリを作っておきます。ノートブックをホストとコンテナで共有するためです。
そのあと、次のコマンドでコンテナを起動します。
$ docker run --rm --name jupyter -d -p 8888:8888 \
-v `pwd`/workspace:/workspace -w /workspace \
continuumio/anaconda3 \
jupyter-lab --no-browser --port=8888 --ip=0.0.0.0 \
--allow-root --NotebookApp.token=''
この状態で http://localhost:8888 にアクセスすることで、token 入力なしで JupyterLab を利用できます。
アクセス時のカレントディレクトリが /workspace にセットされており、ホストのディレクトリとマッピングされています。
なお、解説欄で詳細を書きますが、セキュアではない起動方法です。そのため、他のユーザがアクセスできる環境で使用する場合はご注意ください。
コンテナの終了
次のコマンドでコンテナを終了します。
$ docker kill jupyter
前提
上記手順は Docker for Mac で確認しました。
(恐らく他の Docker 環境でも同手順で対応できると思いますが未検証です)
解説
先ほどの起動コマンドのオプションを解説します。
docker run のオプション
まずは、docker run のオプションから。
# コンテナ終了時にコンテナを削除します
--rm
# コンテナを jupyter という名前で起動します
--name jupyter
# バックグラウンドで起動
-d
# ホストの 8888 番ポートとコンテナの 8888 番ポートをマッピング
-p 8888:8888
# カレントの workspace ディレクトリとコンテナの /workspace ディレクトリをマッピング
-v `pwd`/workspace:/workspace
# /workspace をワーキングディレクトリに設定
-w /workspace
# イメージ continuumio/anaconda3 から起動。
# イメージがないときは pull してくれますが、イメージサイズが大きいので少々時間がかかります・・
continuumio/anaconda3
JupyterLab のオプション
次に JupyterLab のオプションです。
JupyterLab を root で起動しており、ノートブックアクセス時のパスワードを無しにしています。よって、他ユーザのアクセスがない環境でご利用ください。
# ブラウザを起動しない
--no-browser
# ポート 8888 で起動
--port=8888
# サービスを IP アドレス 0.0.0.0 で LISTEN させる
# (この指定がないと、JupyterLab 起動時に例外が送出されて起動失敗します)
--ip=0.0.0.0
# root での実行は非推奨のため、このオプションをつけないと起動に失敗します
--allow-root
# Notebook アクセス時の token 文字列を設定できます。ここではパスワードなしにします。
--NotebookApp.token=''
token を設定する場合は、--NotebookApp.token='' オプションを外してください。
token 文字列は、コンテナ起動後に次のコマンドで確認できます。
$ docker logs jupyter
備考 - 無料で利用できる Jupyter Notebook
単に Jupyter Notebook を使用したいだけでしたら、無料のオンラインサービスもありますので、そちらの方が手軽かもしれません。例えば、Google の Colaboratory というサービスがあります。
参考
docker run
Github:Run notebook without requesting for stupid token #2254