「Jupyter NotebookをLinuxで動かしたいが、依存ライブラリの競合でエラーが出てしまう」
そんな経験はありませんか。実は、LinuxにDockerが入っていれば、1コマンドだけでJupyter Notebook環境を起動できます。Anacondaのインストールも、Pythonのバージョン管理も不要です。
この記事では、WSL2やVPSのLinux上でDockerを使ってJupyter Notebookを素早く起動する方法を、初心者向けに手順ごとに解説します。pandas・numpy・matplotlibが最初から入っているDockerイメージを使うため、起動直後からデータ処理やAI実験を始められます。
この記事のポイント
・docker run 1コマンドでJupyter Notebookを起動できる
・pandas・numpy・matplotlibが最初からインストール済みで使える
・-vオプションでNotebookファイルをホスト側に永続保存できる
・トークンURLをブラウザに貼るだけで操作できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Jupyter Notebookとは?Dockerで起動するメリット
Jupyter Notebookは、ブラウザ上でPythonのコードを書いて、その場で実行できるツールです。実行結果がコードのすぐ下に表示されるため、データの変化を確認しながら分析を進められます。データサイエンスや機械学習の学習で世界中で使われています。なぜWindowsにそのままインストールせず、LinuxのDockerを使うのか?
WindowsにAnacondaをインストールする方法もありますが、次のような問題が起きがちです。
・ライブラリのバージョンが競合してインポートエラーが出る
・他のPython環境と干渉してどこで何が動いているか分からなくなる
・アンインストールが複雑で環境が汚れる
Dockerコンテナを使うと、Jupyter NotebookとPythonライブラリが完全に隔離された箱の中で動きます。コンテナを削除すれば元の環境に戻ります。WSL2やVPSのLinux上でDockerを使うことで、本番環境に近い場所でデータ分析の練習ができます。
セットアップ前の確認事項
この記事はUbuntu 24.04 LTS(WSL2またはVPS)で動作確認済みです。次の環境が整っていることを前提とします。・Ubuntu 24.04 LTS(WSL2またはVPS上)がセットアップ済みであること
・Dockerがインストール済みであること
Dockerがまだ入っていない方は、先に「LinuxでDockerをはじめる入門」を確認してください。WSL2をお使いの方はDocker Desktopも利用できます。
インストール済みであれば、次のコマンドでバージョンと動作を確認できます。
$ docker --version Docker version 27.3.1, build ce12230 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
docker ps がエラーなく空のリストを返せばDockerは正常に動いています。Jupyter Notebookコンテナを起動する手順
1. docker runコマンドでJupyterを起動する
次のコマンドを実行します。初回はDockerイメージのダウンロード(約2GB)が自動で始まります。ネットワーク環境によっては数分かかります。# Jupyter(datascience-notebook)コンテナを起動する # pandas・numpy・matplotlib・scikit-learn が最初からインストール済み $ docker run --rm -p 8888:8888 quay.io/jupyter/datascience-notebook
[I 2026-08-02 09:15:21.034 ServerApp] jupyter_lsp | extension was successfully loaded. [I 2026-08-02 09:15:21.401 ServerApp] jupyter_server_terminals | extension was successfully loaded. [I 2026-08-02 09:15:22.718 ServerApp] jupyterlab | extension was successfully loaded. [I 2026-08-02 09:15:22.719 ServerApp] Serving notebooks from local directory: /home/jovyan [I 2026-08-02 09:15:22.719 ServerApp] Jupyter Server 2.14.1 is running at: [I 2026-08-02 09:15:22.719 ServerApp] http://localhost:8888/lab?token=a3f9c1d8e2b4567890abcdef1234567890abcdef12345678 [I 2026-08-02 09:15:22.719 ServerApp] http://127.0.0.1:8888/lab?token=a3f9c1d8e2b4567890abcdef1234567890abcdef12345678 [I 2026-08-02 09:15:22.719 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
token=... のURLが表示されたら起動成功です。2. ブラウザでJupyterLabにアクセスする
ターミナルに表示されたhttp://127.0.0.1:8888/lab?token=... のURLをコピーして、ブラウザのアドレスバーに貼り付けます。WSL2をお使いの場合、Windows側のブラウザ(EdgeやChromeなど)でそのまま
http://localhost:8888/lab?token=... にアクセスできます。JupyterLabの画面が開けば接続成功です。VPSの場合は
127.0.0.1 の部分をVPSのIPアドレスに変えてください。ファイアウォールで8888番ポートを開放する必要があります。3. Notebookファイルを保存するためのボリュームマウント設定
デフォルト設定では、コンテナを停止するとNotebookファイルが消えます。作業内容をホスト側に残すには-v オプションでディレクトリを接続します。# ~/notebooks ディレクトリを作成する $ mkdir -p ~/notebooks # ボリュームマウント付きで起動する(ファイルが ~/notebooks に保存される) $ docker run --rm -p 8888:8888 -v "$HOME/notebooks":/home/jovyan/work quay.io/jupyter/datascience-notebook
work フォルダに保存したNotebookは、Linuxホスト側の ~/notebooks ディレクトリに残ります。コンテナを停止してもファイルは消えません。Jupyter NotebookでPythonを動かしてみる
1. 新しいNotebookを作成する
JupyterLabの左側パネルから「Launcher」を開き(タブメニューの「+」アイコン)、「Python 3(ipykernel)」をクリックすると新しいNotebookが作成されます。2. 基本的なPythonコードを実行する
セルにコードを入力し、Shift+Enter で実行します。# セルに入力して Shift+Enter で実行する print("Hello, Linux!") import sys print(f"Python version: {sys.version}")
Hello, Linux! Python version: 3.11.9 (main, Apr 19 2024, 11:42:16) [GCC 11.4.0]
3. pandasでCSVデータを読み込む
pandas・numpy・matplotlibはコンテナにあらかじめインストール済みです。次のコードをそのまま実行できます。import pandas as pd import numpy as np # サンプルのデータフレームを作成する data = { 'month': ['1月', '2月', '3月', '4月', '5月'], 'sales': [120, 135, 98, 167, 143] } df = pd.DataFrame(data) print(df) print(f"平均売上: {df['sales'].mean():.1f}")
month sales 0 1月 120 1 2月 135 2 3月 98 3 4月 167 4 5月 143 平均売上: 132.6
4. matplotlibでグラフを描画する
import matplotlib.pyplot as plt plt.figure(figsize=(8, 4)) plt.bar(df['month'], df['sales'], color='steelblue') plt.title('Monthly Sales') plt.xlabel('Month') plt.ylabel('Sales') plt.tight_layout() plt.show()
コンテナの停止とバックグラウンド実行
1. Jupyterを停止する
Jupyterを起動したターミナルで Ctrl+C を2回押すとコンテナが停止します。2. バックグラウンドで起動する(-dオプション)
ターミナルを閉じてもJupyterを動かし続けたい場合は-d オプションを使います。# バックグラウンドで起動する $ docker run -d --name jupyter -p 8888:8888 -v "$HOME/notebooks":/home/jovyan/work quay.io/jupyter/datascience-notebook # コンテナIDが表示される 7f3a2c1b9d8e5f4a6c3b2d1e9f8a7c6b5d4e3f2a1b9c8d7 # 起動ログからトークンURLを確認する $ docker logs jupyter 2>&1 | grep token # コンテナを停止する $ docker stop jupyter # コンテナを削除する $ docker rm jupyter
よくあるトラブルと対処法
「Bind for 0.0.0.0:8888 failed: port is already allocated」エラーが出た場合
8888番ポートが既に別のプロセスで使われています。起動コマンドの-p 8888:8888 を -p 8889:8888 に変えてポートを変更してください。ブラウザのURLも http://localhost:8889/... に変わります。# ポートを8889に変更して起動する $ docker run --rm -p 8889:8888 quay.io/jupyter/datascience-notebook
WSL2でhttp://localhost:8888にアクセスできない場合
次の順番で確認してください。・Docker Desktopが起動しているか確認する
・ブラウザで
http://127.0.0.1:8888 を試す(localhostの代わりに)・Windows Defenderファイアウォールの設定で8888番ポートが許可されているか確認する
Notebookから「No module named 'xxx'」エラーが出た場合
使いたいライブラリがコンテナに含まれていないケースがあります。Notebookのセルから次のようにpip install できます。# Notebookのセル内でpip installを実行する(!で始めるとシェルコマンドを実行できる) !pip install seaborn
requirements.txt を使う方法があります。本記事のまとめ
LinuxのDockerを使ってJupyter Notebookを起動する主なコマンドをまとめます。| やりたいこと | コマンド・手順 |
|---|---|
| Jupyterを起動する(一時利用) | docker run --rm -p 8888:8888 quay.io/jupyter/datascience-notebook |
| ファイルを保存しながら起動する | docker run --rm -p 8888:8888 -v "$HOME/notebooks":/home/jovyan/work quay.io/jupyter/datascience-notebook |
| バックグラウンドで起動する | docker run -d --name jupyter -p 8888:8888 quay.io/jupyter/datascience-notebook |
| 起動中のコンテナを確認する | docker ps |
| ログからトークンURLを確認する | docker logs jupyter 2>&1 | grep token |
| コンテナを停止する | docker stop jupyter |
| コンテナを削除する | docker rm jupyter |
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
次に読む関連記事
Jupyter NotebookとLinuxをさらに活用するために、次の記事も参考にしてください。・trapコマンドでbashスクリプトのシグナルを捕捉・処理する方法|一時ファイル削除やエラー終了処理の実践例も(シェルスクリプト)
・fail2banコマンドでブルートフォース攻撃を自動ブロックする方法|SSHの不正アクセス対策とトラブルシュートも(セキュリティ)
・nmcliコマンドでネットワーク接続を設定する方法|静的IP・DHCP・接続追加・削除の手順も(サーバー構築)
・straceコマンドでプロセスのシステムコールを追跡する方法|Permission deniedの原因特定やデバッグも(トラブルシューティング)
・nmapコマンドでポートスキャン・ネットワーク診断を行う方法|-sSや-Aの使い方とセキュリティ活用も(ネットワーク診断)
・lsblkコマンドでブロックデバイスを一覧表示する方法|ディスク構成やパーティション確認も(ファイルシステム管理)
・jqコマンドでJSONを解析・加工する方法|フィルタ・整形・抽出の実践例も(データ処理Tips)
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:LinuxにApacheをインストールして最初のWebページを表示する入門|WSL2・Ubuntuで動作確認まで
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます