データ分析や機械学習で大活躍のJupyter Notebookを、Dockerを使って手軽に始める方法を紹介します。
この記事では、データサイエンス用に最適化されたイメージを利用し、データの永続化も考慮したセットアップ手順を解説します。
必要なもの
- Docker Desktop:インストールされている必要があります。
- Docker公式サイトからダウンロード可能です。
- Docker Compose:Docker Desktopに同梱されています。
手順
ステップ1: Composeファイルを作成する
以下の内容をコピーして、新しいファイルを作成し、docker-compose.ymlという名前で保存してください。
version: "3.9"
services:
jupyter:
image: quay.io/jupyter/datascience-notebook:latest
ports:
- "10000:8888"
volumes:
- ./jupyter_data:/home/jovyan/work # データ永続化用のボリューム
stdin_open: true
tty: true
restart: unless-stopped
ファイルの説明
image: データサイエンス向けのJupyter Notebookイメージを指定しています。ports: ホストのポート10000をコンテナの8888に割り当てます。ブラウザからhttp://localhost:10000でアクセスできます。volumes:./jupyter_dataディレクトリをコンテナ内の作業フォルダにマウントします。
これにより、Notebookファイルが永続的に保存されます。restart: unless-stopped: コンテナを常に再起動します(停止するまで)。
ステップ2: ディレクトリを作成する
ローカルに必要なフォルダを作成します。
mkdir my_jupyter_project
cd my_jupyter_project
mkdir jupyter_data
my_jupyter_project: プロジェクト全体を管理するフォルダです。jupyter_data: Jupyter Notebookのデータを保存するフォルダです。
ステップ3: Jupyter Notebookを起動する
ターミナルでdocker-compose.ymlが保存されているフォルダに移動し、以下のコマンドを実行します。
docker-compose up -d
コマンドの説明
up -d: サービスをバックグラウンドで起動します。- 初回起動時は、Dockerがイメージをダウンロードするので時間がかかる場合があります。
ステップ4: ブラウザでアクセスする
ブラウザで以下のURLにアクセスします。
http://localhost:10000
起動時に以下の画面が表示されます。

以下の手順でトークンを取得して入力してください。
docker exec -it <コンテナ名> sh # Jupyter Notebookコンテナに入る
jupyter server list # 認証画面に指示されたコマンドを入力
# 以下が表示されるので、token=に続く部分がトークンです。
http://localhost:8888/?token=c8de56fa... :: /Users/you/notebooks
Jupyter Notebookの停止方法
Jupyter Notebookを停止したい場合は、以下のコマンドを実行します。
docker-compose down
よくある質問
Q. Jupyter Notebookのデータはどこに保存されますか?
A. ローカルのjupyter_dataフォルダに保存されます。
このフォルダは永続化されているため、コンテナを削除してもデータが失われません。
Q. 使用するポート番号を変更できますか?
A. Composeファイルのportsセクションでホストのポート番号(例:10000)を好きな番号に変更してください。
Q. トークンの入力を回避するには?
A. docker-compose.ymlを以下に変更します
version: "3.9"
services:
jupyter:
image: quay.io/jupyter/datascience-notebook:latest
ports:
- "10000:8888"
volumes:
- ./jupyter_data:/home/jovyan/work
stdin_open: true
tty: true
restart: unless-stopped
command: start-notebook.sh --NotebookApp.token=''
Dockerコンテナで書き込み時にパーミッションエラー
Dockerコンテナのworkディレクトリの所有者がrootでrootのみ読み書き可能な権限であるためパーミッションエラーが発生します。
docker exec --user root -it jupyter-jupyter-1 sh # Dockerコンテナにrootでログイン
# id
uid=0(root) gid=0(root) groups=0(root)
# ls -ld work
drwxr-xr-x 2 root root 4096 Dec 1 21:47 work
Dockerコンテナで、workのパーミッションを変更します。
# chmod 777 work # パーミッションを変更
まとめ
これでDockerを使ったJupyter Notebookのセットアップが完了です!データサイエンス向けのツールがすぐに使える環境が整います。
プロジェクトごとにデータを整理し、効率的に分析を進めていきましょう。
この記事を参考に、ぜひJupyter Notebookを活用してみてください!

