docker使ってpython2.xのjupyter notebookを起動した話(土日潰れた)


 ことのはじまり

解析で使いたいパッケージがpython2.xで書かれていた(やめてくれ)。ローカルのpython3環境をけがしたくない。かといってVMも使いたくない!

そうだDockerとやらを試してみよう。とりあえずぐぐってみよう。

ふむふむDocker pullでimageを簡単に構築できるのか。えっっ、、2018年にjupyter/scipy-notebook(DockerImageのLibrary)のpython2の取り扱いやめるてるの。くそ、、ならforumで誰か解決案出してんだろ、、え、(長いスクロールの果てに)結局無理なんかい!もうこうなったら自分で見つけてやる

 読者対象

Dockerでpython2で書かれた.jpnbを扱いたい人(とてもニッチ)。Mac使い。Dockerビギナーなのであまり詳しい説明はできませんが、この記事が役に立てば嬉しい。

 All you have to do

以下をterminalで順に実行していただければ良い。

1 マウントしたいdirectoryにcdで移動。(必要なけれがスルー)
2 minicondaをpull    (jupyter/scipy-notebookは上記の理由で却下)

$ docker pull continuumio/miniconda

3 docker run: ここでは名前を'mini'、portをlocal:8001 cotainer:8000に設定、/home以下にマウント先を指定

$ docker run -it --name mini -p 8001:8000 -v ${PWD}:/home continuumio/miniconda bash

4 以下を何も考えず実行。(backports.functools_lru_cacheを自分で入れなければいけないところがみそ。)

conda create -n py27 python=2.7
conda activate py27
conda install notebook ipykernel
pip install backports.functools_lru_cache
ipython kernel install --user

5 必要があれば、適宜conda install/pip installで必要なmoduleを入れていく。

6 ローカルのhttp://localhost:8001
にnotebookを展開

jupyter notebook --port 8000 --ip=0.0.0.0 --allow-root

7 Enjoy coding

 結論

めんどくさいがこれで最低限、表題のことはできる。他にいい方法があれば教えて欲しい。。