環境
OS:Windows10 Home 1909
Docker:Docker Toolbox
Docker バージョン:19.03.12
注意点
恥ずかしながらDockerをJupyter環境整備で初めて使用して、Dockerについてあまり知りませんでした。自戒の念も込めて記載しておきます。※ docker-compose.ymlを使用
Docker imageはDockerfileを基に構築されます。Docker imageを一度build
した際はキャッシュが作成されます。キャッシュとは簡単に言えば、2回目以降の読込を高速化するものです。このキャッシュがあると、build
の際に優先的に用いられてしまいます。そのため、Dockerfileを更新した際はdocker-compose build --no-cache
でキャッシュを使用しないbuild
をしましょう。
キャッシュを使用しないbuild
ですので、ものによってはかなり時間が掛かることもありますので、ご注意ください。
Dockerfile
FROM jupyter/datascience-notebook
RUN pip install --upgrade pip
RUN pip install jupyterlab
RUN jupyter serverextension enable --py jupyterlab
RUN curl -L "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip" > font.zip
RUN unzip font.zip
RUN cp IPAexfont00401/ipaexg.ttf /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/ipaexg.ttf
RUN echo "font.family : IPAexGothic" >> /opt/conda/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
RUN rm -r ./.cache
使用方法
Windows環境では、Docker Quickstart Terminalで実行してください。
Dockerfileに記載してあるDockerfileとDockerfileに対応したdocker-compose.ymlがあるディレクトリにcd
で移動し、下記コマンドを実行します(注意点もご確認ください)。
docker-compose build
docker-compose up -d
docker-compose.ymlでtoken値を設定していない(空値は「設定している」とします)場合は、TerminalにURLが出力されていると思います(e.g. http://127.0.0.1:8888/?token=... )。そのtoken値も含めて任意のブラウザでアクセスすればJupyterが使えるようになっているハズです。
※ token値を空値で設定してある場合は、http://192.168.99.100:8888 (windows) でアクセスできます。macは http://localhost:8888
確認方法
Jupyterが使用できたら、下記をPythonで実行します。
import matplotlib
import matplotlib.pyplot as plt
plt.figure()
plt.title('あ - A')
plt.ylabel('い - i')
plt.xlabel('う - Uu')
その結果、下の画像のように出力されていれば日本語が使えるようになっています!
お疲れさまでした!
おわりに
Anaconda環境から卒業して、ついにDocker環境に移行するぞ!と意気込んだのはよかったものの、Dockerは初めてで、データ分析系統の知識しかなかったのでIT知識は詳しくなく、何度も躓きました。実はこの日本語を使えるようにするのも1度諦めました。
また、最近の記事はmac環境ばかりでwindows環境の記事を探すのも一苦労です。ただそのwindows環境の記事も時間経過で環境が変わり、そのままのコードを打ち込んでも動いてくれないこともままあります。それらのコードを改良するのも楽しいですが、初学者のときは難しいですね...。