🧪

Docker を使って JupyterLab を利用するときにトークンなしでアクセスできるようにしたい

2024/09/11に公開

tl;dr

  • Jupyter Docker Stacks の公式ドキュメント にやり方がちゃんと書かれているので、それを参照するのがいいよ
  • 2024年9月時点では、start-notebook.py を使いつつ --IdentityProvider.token='' オプションを指定する、だよ

背景

手元の環境で JupyterLab を利用してみたくなったので、Jupyter Docker Stacks の Docker イメージを利用して JupyterLab を立ち上げる方法を調べていました。

都合により docker run ではなく docker compose で JupyterLab のコンテナを稼働させる方法を試していて、 http://127.0.0.1:8888/ をブラウザで開いて JupyterLab のページを表示するところまでは難なく到達できました。しかし実際に JupyterLab を利用するには JupyterLab のコンテナのコンソールに出力されるトークン付きの URL でアクセスせねばならずこれが地味に面倒だったので、トークンなしで JupyterLab にアクセスする方法を探っていました。

結論を述べると先に示したとおり公式ドキュメントに簡潔ながらもちゃんとやり方が書かれているので、それに沿って compose.yaml ファイルを記述すればトークンなしでのアクセスが容易に実現できます。

compose.yaml
services:
  jupyter:
    image: quay.io/jupyter/base-notebook:latest
    ports:
      - "8888:8888"
    command:  # 以下を指定することでトークンなしでアクセスできるようになる
      - "start-notebook.py"
      - "--IdentityProvider.token=''"

余談

世の中にはこれと同様の内容を説明しているブログエントリがすでにいくつも存在していますが、そのうちのいくつかは古い情報 (--NotebookApp.token='' オプションを指定する) に基づいていてちょっと残念なので、こういうのは一次情報のリンクを添えられるなら添えたいね、と思うのでした。

Discussion