Docker

DockerでローカルにJupyterの環境を構築する

特に目新しい話ではないのだけれど。
これまでDockerは使う必要がなかったんだけど、ローカルでJupyter環境を作る必要が出てきたのでせっかくだから。

マシンスペック
iMac (27-inch, late 2013)
OS:macOS High Sierra
CPU:3.5 GHz core i7
RAM:32GB
GPU:NVIDIA GeForce GTX 775M 2048MB

5年前に70万ぐらいかけて買った、当時のiMacとしては相当なスペックだったような気がします。今では見る影もないですが。

取り急ぎDocker for Macを入れる
https://hub.docker.com/editions/community/docker-ce-desktop-mac
インストーラ(といってもただのパッケージ)のダウンロードにあたってはdocker hubへの登録が必要。pkgを開いてApplicationにDocker.appsを移動させたら立ち上げ。
先ほどのID/PWでログインしたらターミナルを立ち上げて

$ docker run hello-world

でHello Worldが走る。
(正確にはhello-worldというDockerイメージを走らせている)

Hello from Docker!
This message shows that your installation appears to be working correctly.

いい感じですね。このコマンドだけで全ての環境構築が済むとすれば相当に便利です。

Docker Hubのjupyter/notebookはいつの間にか消えているので、https://github.com/jupyter/docker-stacksを使います。今回は試しにjupyter/base-notebookを。

$ docker run -p 8888:8888 -v ~/jupyter/:/home/jovyan/work jupyter/base-notebook start-notebook.sh

走りました。
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://(260aaf71eb44 or 127.0.0.1):8888/?token=21************************0

通常のJupyterと同様に指示に従ってhttp://127.0.0.1:8888/?token=21************************0をブラウザでひらけば…

追加で必要なパッケージは通常のJupyterと同様にMagic Commandsを使えばそのまま入る。

%pip install ***

せっかくJupyterなので、base-notebookだけ入れておいてその先の環境構築は全部notebookとして残しておくというのもいいんじゃないかな。あんまりにも初めから何でも入っていると環境がぐちゃぐちゃになりそうで嫌というのもあるし。