Edited at

JupyterのDockerイメージでさくっとPython2+3環境を準備

More than 1 year has passed since last update.


やったこと

Jupyterは公式にDockerイメージを提供しており、

環境をDockerコンテナにより一瞬で用意できます。

今回は、そのJupyterコンテナにpython2.7カーネルを追加しました。


Jupyter

言わずもがなですが。。。

Jupyterとは、一言でいえばドキュメント共有アプリケーションです。


  • 実行可能なソースコードを統合でき、インタラクティブに実行結果を確認できる

  • ソースコードの実行結果などをビジュアライゼーションできる

という特長があり、一種のプログラミング実行環境と呼べる便利なツールです。


Jupyterのカーネル

もともと、Jupyterはpythonのインタラクティブ実行環境(IPython)が出自です。

現在は様々な言語に対応しており、カーネルを追加することで

Jupyterが対応する様々な言語のnotebookを作成可能になります。


jupyter/datascience-notebook イメージ

JupyterはDockerhubで*-notebookというイメージを公開しており

それぞれ用途ごとにインストールされているパッケージが違います。

ただ、今回使いたかったPython2.7(いまさら。。)がインストールされているイメージはなかったので

自前で対応しました。

まずは、docker-composeでさくっとJupyter環境を構築します。

version: '2.2'

services:
jupyter:
image: jupyter/datascience-notebook
ports:
- 8888:8888
volumes:
- ./:/home/jovyan/work
command: start-notebook.sh --NotebookApp.token=''

--NotebookApp.token='' とすると、Webアクセス時にパスワードもトークンも入力せずに使えます。

(非推奨なのでローカルで使うときに限った方がよいです)

Jupyterが立ち上がったら、

http://localhost:8888

にアクセスします。

そして右上の[New ▼]から、新しくnotebookを作成したら

%%bash

conda create -y -n py27 python=2.7
activate py27
conda install -y notebook ipykernel && ipython kernel install --user

こんな感じののnotebookを用意します。

image.png

そして Ctrl+Enter !

※途中の進捗が出ないので少し不安感あります。

※作成するnotebookはPython3でもなんでもいいです

そして、コンテナをrestartすれば

image.png

OK!


補足

Jupyterのnotebookでは、

%%bash

ls

と書いて、bashを実行したり、

!ls

と書いて、shを実行したりできます。

今回は(おしゃれ感もあったのでw)あえてこの方法でパッケージをインストールしてみました。

まあでも↑によって、LinuxコマンドなどのドキュメントもJupyterで書けるということなんで

本当に使い道が広いなと感じます。