search
LoginSignup
53

More than 3 years have passed since last update.

posted at

updated at

Docker で JupyterLab を起動し、token 入力なしでアクセスする

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 を利用できます。

jupyter.png

アクセス時のカレントディレクトリが /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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
53