見出し画像

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の環境設定を紹介しました。手軽にデータ分析環境を整えたい方の参考になればうれしく思います。

ご精読いただき、ありがとうございました!


私たちのデジタル技術活用の記事は以下のマガジンにあります。ぜひご覧ください!

この記事が気に入ったらサポートをしてみませんか?