概要
- docker ps で対象コンテナ名/IDを確認
- docker logs <NAME> | grep -m 1 token= でURL取得
- ブラウザで
http://localhost:8888/lab?token=<TOKEN>を開く
1) 前提
- Linuxホスト上でDockerコンテナ内にJupyterLabが起動済み
- ポート公開例:
-p 8888:8888
2) コンテナ特定(ホストOSで実行)
docker ps
例(NAMES が jupyter-lab):
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<CONTAINER_ID> jupyter/base-notebook "tini -g -- start-no…" <AGE> Up <TIME> 0.0.0.0:8888->8888/tcp jupyter-lab
3) 起動ログからログインURL/トークン取得
docker logs jupyter-lab 2>&1 | grep -m 1 token=
# or
docker logs <CONTAINER_ID> 2>&1 | grep -m 1 token=
出力例(トークンは一例):
[I ... ServerApp] http://127.0.0.1:8888/lab?token=<TOKEN>
4) ブラウザでアクセス
- ホストPCから:
http://localhost:8888/lab?token=<TOKEN> - 別PCから:
http://<HOST-IP>:8888/lab?token=<TOKEN>
ログイン画面が出ている場合は、トークン値(<TOKEN>)だけをフォームに貼り付けても可。
5) コンテナ内から確認(任意)
コンテナに入っている場合(例:docker exec -it jupyter-lab bash):
jupyter server list
出力例:
Currently running servers:
http://localhost:8888/?token=<TOKEN> :: /home/jovyan
6) 毎回トークンを探さない設定(任意)
固定パスワードを設定
# コンテナ内で実行
jupyter server password
# 案内に従い「現在のトークン」→「新パスワード」を入力
以後は http://localhost:8888/lab を開き、設定したパスワードでログイン。
環境変数による制御(イメージ依存)
# 例:docker run 時に設定(Notebook系公式イメージなど)
-e JUPYTER_TOKEN= # 空にするとトークン無効(パスワード必須)
# or
-e JUPYTER_PASSWORD=<plain> # イメージにより可否が異なる(各イメージのドキュメント参照)
環境変数の対応はベースイメージごとに異なります。必ず各イメージのドキュメントを確認してください。
7) 典型的トラブルと対処
- 外部PCから
127.0.0.1で入れない:外部PCは<HOST-IP>を使用。-p 8888:8888を確認。 - トークン不一致:最新の
docker logs ... | grep token=で再取得(再起動でトークンが変わることがあります)。 - 「Currently running servers:」の下が空:Jupyter未起動/別ユーザーで起動の可能性。
docker psとdocker logsを再確認。 - VPN経由でアクセス不可:地域制御でブロックされる場合あり。VPNをオフにするか出口地域を変更。