今日こんなの書きました。
R使いのためのDocker「Rocker」を使ってみる(Windows) - Technically, technophobic.
RはDockerイメージあるんだよ。進んでるでしょフフン。
とおもってたけど、、
軽くググったらIPythonにもIJuliaにもDockerイメージありました。Rが時代に遅れてただけでした。すません。ということで懺悔のつもりでこっちも記事に書きます。
Dockerホストを立てる
Windowsであれば前回の記事を参照してください。Mac、Linuxは、グーグル先生に聞いてください(丸投げ)。
IPythonのDockerイメージ
Github: ipython/docker-notebook · GitHub
Dockerhub: View Public Profile | Docker Hub Registry - Repositories of Docker Images
今のところ公開されているのは3つのようです。
- ipython/scipystack - Relies on ipython/ipython, installs the scipy stack & more
- ipython/scipyserver - Relies on ipython/scipystack, sets up a notebook server. See the README for usage instructions.
- ipython/notebook - Relies on ipython/ipython and just sets up the IPython notebook. No additional Python packages are installed by default
これを読む感じ、ipython/scipyserver
っていうやつが全部入りっぽいです。試してみます。
docker pull ipython/scipyserver
全部入りだけあって、落としてくるのはちょっと時間かかります。
落として来たら、以下のコマンドでDockerイメージを立ち上げます。
このイメージにはちょっとした小細工がしてあって、-e
オプションで渡すPASSWORD
環境変数でパスワードが設定されます。
docker run -d -p 443:8888 -e "PASSWORD=MakeAPassword" ipython/scipyserver
https://192.168.59.103 でアクセスできます(IPが違ったらboot2docker ip
でチェック)。オレオレ証明書を使っているので警告が出ますが気にしないでください。こんなログイン画面が出るので、↑でPASSWORD
に指定している文字列を入力するとログインできるはずです。
ログインしてnotebookを開いたところ。右上のプルダウンでPython2かPython3か選べます。
IJuliaのDockerイメージ
Github: JuliaLang/JuliaBox · GitHub
Dockerhub: tanmaykm/jboxjulia Repository | Docker Hub Registry - Repositories of Docker Images
これは、JuliaBoxというオンライン上でIJuliaを使えるサービス用に開発されているものです。 たぶんインストール手順を見れば、自分でAWSにJuliaBoxを立てちゃうこともできそうです。が、今回は深入りせずにDockerファイルだけ使います。
Julia入りのDockerイメージはtanmaykm/jboxjuliaですが、IJulia入りのはDockerhub上には上がってなさそうです。Dockerfileからビルドする必要があります。ビルドはdocker build
です。-t
オプションで、ビルド後のイメージに名前を付けます。DockerfileはローカルのファイルでもURLでも指定できます。
docker build -t my_ijulia https://raw.githubusercontent.com/JuliaLang/JuliaBox/master/docker/IJulia/Dockerfile
これもけっこう時間かかります。
で、がんばった割にエラーで動かなかったりします。
$ docker run -it -p 8888:8888 ijulia /bin/bash Error: invalid value for -l '/home/juser/.juliabox/supervisord.log': The directory named as part of the path /home/juser/.juliabox/supervisord.log does not exist.
まじかー。。たぶん、ちょっと前のコミットが変だったんじゃないかなーと思います。それでなくても、なんかこのDockerイメージは不必要な操作をしすぎていてイマイチな雰囲気が漂ってます。
もーむりっす! 諦めた。
IJuliaを試したければ、ぶっちゃけこんなことするよりJuliaBoxを使うほうがお手軽でいいと思いました(今さら)。
まとめ
- Dockerfileによるビルドが成功するからといってそのイメージが壊れてない保証はまったくない
- そしてそれは実際に使ってみるまで分からない
ということですね。つらい。