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

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で書けるということなんで
本当に使い道が広いなと感じます。

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