この記事の目的
ローカルでJupyterをさくっと立てて分析をしたり、簡単なスクリプトを書きたい時にはDockerを使うと便利です。その方法をまとめました。
Jupyter上で扱う言語はAnacondaとRubyを対象としています。
前提
Dockerがインストールされていること。
Anacondaを使う場合
Jupyterが公式で提供しているDockerイメージを利用します。
jupyter/docker-stacks - Github
色々なバージョンがあるのですが、今回は分析用のライブラリが一式入っているdatascience-notebookを使います。
ローカルなので認証Offの状態で立ち上げます。(サーバ上で起動する場合は認証掛けたほうがいいと思います)
また、分析対象のデータがあるディレクトリで docker run すればそのままデータが使えるように、Jupyterのworkをカレントディレクトリにマウントしておきます。こうすることで、notebook自体はローカル上に残ります。
docker pull jupyter/datascience-notebook
docker run -d -p 8888:8888 -v "$(pwd):/home/jovyan/work" jupyter/datascience-notebook start-notebook.sh --NotebookApp.token=''
ブラウザからlocalhost:8888にアクセスするとJupyterからAnacondaが使える状態になっています。
Reference
Jupyter の Docker イメージを使ってみる - Qiita
Rubyを使う場合
公式では無いのですが、こちらの記事で紹介されているイメージを利用します。
Rubyの場合はGemを自分で追加したいので、 docker run するディレクトリにGemfileとDockerfileを置いた状態で起動します。
source 'https://rubygems.org'
gem 'hoge' # 好きなGemを入れる
gem 'fuga'
FROM izumin5210/iruby-notebook
ADD Gemfile .
RUN bundle install
Rubyの文字コードだけ指定して起動します。また。Anacondaの場合と同様に、分析対象のデータがあるディレクトリで docker run すればそのままデータが使えるように、Jupyterのworkをカレントディレクトリにマウントします。
docker build -t=iruby-notebook .
docker run -p 8888:8888 -e RUBYOPT=-EUTF-8 -v "$(pwd):/notebooks" iruby-notebook
ブラウザからlocalhost:8888にアクセスするとJupyterからRubyが使える状態になっています。
Reference
Railsエンジニアに役立つJupyter NotebookとiRuby - クックパッド開発者ブログ
Pythonista以外が環境を汚さずにJupyter Notebookに触れる方法 あるいは,Rubyist以外が環境を汚さずにJupyter NotebookでRubyに触れる方法 - Qiita
以上です。