DockerHubのdatascience-notebookの設定
DockerHubにあるjupyter/datascience-notebookは、ディープラーニング以外のデータ分析を行う際に必要なライブラリが一通り揃っているため、とても便利です。
この記事では、うちでよく使う基本的な設定を紹介します。初めてDockerやdatascience-notebookを使う方にとって、環境構築がスムーズになれば幸いです。
なお、この記事はローカル環境での構築を前提としており、セキュリティ設定は比較的緩めとなっています。
▍ファイル配置
先にファイル・フォルダの配置を書いておきます。
├─ docker-compose.yml
├─ Dockerfile
└─ work
└─ fonts
└─ ipaexg.ttf
docker-compose.ymlとDockerfileはコンテナを作成するために使います。workはホストとコンテナでデータ共有するためのフォルダです。fonts内はグラフの日本語化に使います。
▍コンテナの設定ファイル
docker-compose.ymlの内容は以下です。設定内容はコメントを参照ください。
services:
# サービス名を'notebook'に指定
notebook:
# Dockerfileを指定(docker-compose.ymlと同ディレクトリ)
build:
context: .
dockerfile: Dockerfile
# ポート番号を指定
ports:
- "8888:8888"
environment:
- JUPYTER_ENABLE_LAB=yes # Jupyter Labを有効化
- TZ=Asia/Tokyo # タイムゾーンを指定
# ホストとコンテナでデータ共有するためにworkフォルダをマウント
volumes:
- ./work:/home/jovyan/work
# トークン認証を無効化
command: start-notebook.sh --NotebookApp.token=''
Dockerfileの内容は以下です。コンテナ内でaptコマンドを実行することがあるため、既定のユーザーであるjovanがパスワードなしでsudoを実行できるようにしています。
# ベースイメージとしてjupyter/datascience-notebookの最新版を使用
FROM jupyter/datascience-notebook:latest
# 以降のRUNコマンドを実行するためにユーザーをrootに変更
USER root
# jovyanユーザーに対してパスワードなしでsudoを許可する設定を/etc/sudoersに追加
RUN echo "jovyan ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
# ユーザーをjovyanに戻す
USER jovyan
コンテナの作成には以下のコマンドを実行します。
docker-compose up -d
▍日本語フォントの設定
グラフの日本語化にはいくつか方法がありますが、ここではIPAexフォントをダウンロードし、フォントに指定する方法を紹介します。
以下のPythonコードは、コンテナ内のJupyter Notebookで記述します。
import matplotlib.pyplot as plt
from matplotlib import font_manager
font_manager.fontManager.addfont('./fonts/ipaexg.ttf')
plt.rc('font', family='IPAexGothic')
IPAフォントは以下のサイトからダウンロードし、所定の場所に格納します。前述のファイル配置もご参照ください。
▍おわりに
この記事では、DockerHubのdatascience-notebookの環境設定を紹介しました。手軽にデータ分析環境を整えたい方の参考になればうれしく思います。
ご精読いただき、ありがとうございました!
私たちのデジタル技術活用の記事は以下のマガジンにあります。ぜひご覧ください!