Dockerを利用してJupyter Notebook環境を用意する方法について解説します。
Contents
Dockerを用いてJupyter Notebook環境を用意する
Dockerはコンテナ型仮想環境を用意することができるプラットフォームです。Dockerを用いてPythonの分析でよく使用されるJupyter Notebook環境を用意する方法について紹介します。
Dockerを使用する際には、Docker Desktopのインストールが必要です。インストールされていない方は、以降の説明の手順を実行する前にDocker Desktopのインストールをしてください。
Windows用のインストール方法を以下で紹介しているので参考にしていただければと思います。
Jupyter NotebookのDockerイメージの取得
Dockerでは、Docker Hubで様々なイメージが公開されています。その中では色々なイメージが公開されているのですが、今回はJupyter Notebookの環境を用意することが可能な、https://hub.docker.com/r/jupyter/datascience-notebookの取得と利用について紹介していきたいと思います。
コマンドプロンプトで以下を実行することで、Dockerイメージを取得することができます。
docker pull jupyter/datascience-notebook:latest
Dockerイメージの取得が完了すると以下のような感じになります。
>docker pull jupyter/datascience-notebook:latest latest: Pulling from jupyter/datascience-notebook d7bfe07ed847: Pull complete 3aac83093598: Pull complete 07c6895da385: Pull complete (===== 途中省略 =====) 72587575b724: Pull complete 2b0d46c52c37: Pull complete f7e1bac0ebe7: Pull complete Digest: sha256:cc8b50412e3e4570d9d0c14c75936f4201fc37efa78aefcc417afffc082b0f6a Status: Downloaded newer image for jupyter/datascience-notebook:latest docker.io/jupyter/datascience-notebook:latest
取得済みのDockerイメージ一覧は、「docker images」で確認ができます。
>docker images REPOSITORY TAG IMAGE ID CREATED SIZE jupyter/datascience-notebook latest fffb7b930368 5 hours ago 4.37GB
上記のように表示されれば、Dockerイメージの取得は完了です。
Jupyter Notebookのコンテナの作成と実行
Jupyterの起動
Dockerイメージの取得が完了したら、コンテナを起動します。以下のようなコマンドを実行してください。「D:\docker\jupyter_notebook_1」の部分はお使いの環境の任意のフォルダを指定してください。コマンドの意味については後述しますので、まずは起動して使い始める方法として読み進めてください。
docker run --rm -it -p 8888:8888 -v D:\docker\jupyter_notebook_1:/home/jovyan/work jupyter/datascience-notebook:latest
上記のように実行するとJupyterが起動します。コマンドプロンプトを見てもらうと「http://127.0.0.1:8888/lab?token=xxxxxxxx」というような記載の文字列の場所があるかと思います。
xxxxxxxxの部分は接続のためのトークンで起動ごとに異なります。このURLをブラウザに入力して実行してください。以下のようなJupyter Labの画面が起動します。
workフォルダをダブルクリックするとworkフォルダに移動できます。後述しますが、workフォルダとローカルフォルダをマウントする設定で起動しているため、ローカルにファイルを保存したい場合は、workフォルダ内にファイルを作成してください。
Notebookのところの「Python3」をクリックしてもらうと以下のように表示されてプログラミングをすることができます。
Jupyter Labは、Jupyter Notebookの後継機として開発されたブラウザ上で動作する対話型実行環境です。
起動コマンドの補足説明
以降でDockerコンテナ起動時に実行した以下コマンドについて補足説明します。
docker run --rm -it -p 8888:8888 -v D:\docker\jupyter_notebook_1:/home/jovyan/work jupyter/datascience-notebook:latest
ポートの接続
Dockerでは、コンテナ側のポートとホストマシン(実行しているPC)のポートを結びつけることができます。その際には「-p」オプションで指定します。
Jupyter Notebookは標準で8888番ポートで運用されます。「8888:8888」の部分は、ホスト側の8888番ポートとコンテナ側の8888番ポートを接続するという意味になります。
フォルダのマウント
Dockerでは、コンテナを削除してしまうとデータが消えてしまいます。そのため、「-v」オプションで、ホスト側のフォルダとコンテナ側のディレクトリをマウントします。
今回の例ではホスト側の「D:\docker\jupyter_notebook_1」とコンテナの「/home/jovyan/work」をマウントしています。このようにしておくことで、workフォルダ内に作成したファイルなどは「D:\docker\jupyter_notebook_1」配下に保存されます。ホスト側のパスについては、お使いの環境の任意のパスを指定してください。
これによりコンテナを削除してもファイルは残り続けます。また、他のDockerコンテナと共有して使うこともできるようになります。
まとめ
DockerでJupyter Notebookの環境を構築する方法について紹介しました。
Dockerを利用することで、利用する際にコンテナを起動すればよいので、自身のPCの環境に影響を与えることなく環境をつくことができます。
Jupyter Notebookは、Pythonでの分析環境として非常によく利用されている環境です。是非上記を参考にしていただいて、分析を色々と試してみてもらえればと思います。