Help us understand the problem. What is going on with this article?

Dockerを使って5分でJupyter環境を構築する

More than 1 year has passed since last update.

はじめに

連休中にPythonやPythonライブラリを勉強したのですが、その時にサクッとDockerで勉強用の環境を構築できたので、その時のメモを共有します。

環境構築が苦手だったり、自分のPC内を汚したくない人にとって役立つ記事になればと思います。

忙しい人向けまとめ

前提として、自分のPCにDocker環境はあるものとしますが、任意のディレクトリ下で下記3つのことをすれば環境が作れます。

1. $ docker pull jupyter/scipy-notebook
2. $ docker run -v `pwd`:/home/jovyan/work -p 10000:8888 --name jupyter jupyter/scipy-notebook
3. localhost:10000にアクセス + トークン認証

Jupyter Notebookを使えるようにするまでの流れ

Jupyter Notebookのイメージを取得

今回は個人学習用程度のものを想定しているので、jupyter/scipy-notebookというイメージを使っていきます。

$ docker pull jupyter/scipy-notebook
$ docker images # イメージがあることを確認

コンテナの起動

jupyterというコンテナ名を付けて10000番ポートでコンテナを作成&起動します。
この時、コンテナの中にカレントディレクトリにあるファイルをマウントしておくと便利です。(とても地味ですがこの記事での一番のポイントです。)

$ cd <任意のディレクトリ>
$ docker run -v `pwd`:/home/jovyan/work -p 10000:8888 --name jupyter jupyter/scipy-notebook

起動時、コンソールの最後に以下のようなログが出てくるので、<トークン>の部分をコピーしておいてください。

Copy/paste this URL into your browser when you connect for the first time,
  to login with a token:
  http://7dae9a493ca7:8888/?token=<トークン>

また、コンテナの起動を確認しておきます。
以下のように、STATUS部分が「UP」になっていればOKです。(起動できてない場合は「Excited」となります)

$ docker ps -a
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                     PORTS                     NAMES
fe7724bbe7f4        jupyter/scipy-notebook   "tini -g -- start-no…"   About an hour ago   Up About an hour           0.0.0.0:10000->8888/tcp   jupyter

ブラウザでJupyter Notebookを開く

localhost:10000にアクセスします。
ここで、ブラウザに現れるPasswordの部分に4.で取得したトークンを入れると下図のようにJupyter Notebookにアクセスできるようになります。

image.png

そしてちゃんと指定したパスにあったデータがマウントされてます!
ここには載せませんが、もちろん、新規ファイルを作成したり、ファイルを編集してもローカルのデータに反映されます。
image.png

2回目以降の起動方法について

docker start jupyterでコンテナを起動し、上記と同様にブラウザでlocalhost:10000にアクセスします。
2回目以降はトークンを記憶してくれているため基本的にトークン不要ですが、要求された場合はコンテナに入ってログに出力すればOKです。

# コンテナ起動
$ docker start jupyter
 jupyter

# 状態を確認、STATUS: UPなら起動成功
$ docker ps

# もしトークンを確認された場合はコンテナに入ってログを出力する
$ docker exec -it jupyter bash
$ jupyter notebook list
 Currently running servers:
 http://localhost:8888/?token=<トークン>

まとめ

以下の3ステップで簡単にJupyter Notebook環境を構築しました。
とても簡単なのでJupyterで勉強したい時は是非ご参考ください!

1. $ docker pull jupyter/scipy-notebook
2. $ docker run -v `pwd`:/home/jovyan/work -p 10000:8888 --name jupyter jupyter/scipy-notebook
3. localhost:10000にアクセス + トークン認証

参考URL

fuku_tech
元化学系研究者/2019.3月にエンジニアへ転向/Ruby/Rails/MySQL/GAS/TypeScript/GCP/AWS
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away