普段はJupyter Notebookを使っているが、JupyterLabというJupyterプロジェクトの次世代UIがあるので、試しに使ってみることにした。インストールしてもいいのだが、最近はDockerが便利なので、DockerコンテナでJupyterLabを使う環境を作成してみる。
Docker Desktop(Windows10 Pro)。
まずはベースとなるDockerイメージを選ぶ。Jupyterプロジェクトによるイメージ(Selecting an Image)もあるのだが、今回はAnaconaのイメージ(continuumio/anaconda3)を使う。このイメージにはPandasなどデータ分析に必要なライブラリだけでなくJupyterLabもインストールされている。
Docker Hubにあるイメージはそのままでも起動できるが、いくつか手を加えたいのでDockerfileを用意する。日本語フォントのインストールと、タイムゾーン、ロケールの設定を行う。
docker-composeでコンテナを起動するためにdocker-compose.ymlを用意する。Dockerfileでイメージをビルドするようにし、コンテナのポート8888をホスト側の8888で使えるようにする。また、ホスト(Windows)のd:\workをコンテナからマウントして、ここでファイルなどを共有できるようにしておく。
作成したDockerfileとdocker-compose.ymlを同じフォルダに置いて、docker-composeコマンドでコンテナを起動する。
コンテナの確認
ホストでブラウザからlocalhost:8888にアクセスするとJupyterLabのログイン画面が表示される。Dockerfileで指定したトークンでログインできる。
ロケールもちゃんと変更されている。
環境
Docker Desktop(Windows10 Pro)。
Dockerイメージ
まずはベースとなるDockerイメージを選ぶ。Jupyterプロジェクトによるイメージ(Selecting an Image)もあるのだが、今回はAnaconaのイメージ(continuumio/anaconda3)を使う。このイメージにはPandasなどデータ分析に必要なライブラリだけでなくJupyterLabもインストールされている。
イメージのカスタマイズ
Docker Hubにあるイメージはそのままでも起動できるが、いくつか手を加えたいのでDockerfileを用意する。日本語フォントのインストールと、タイムゾーン、ロケールの設定を行う。
FROM continuumio/anaconda3:latest
# 作業ディレクトリの作成
WORKDIR /work
# ロケールと日本語フォントのインストール
RUN apt update \
&& apt -y install --no-install-recommends \
locales fonts-takao \
&& sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen \
&& locale-gen \
&& apt clean \
&& fc-cache -fv
# タイムゾーンとロケールの設定
ENV TZ="Asia/Tokyo" \
LANG="ja_JP.UTF-8" \
LANGUAGE="ja_JP:ja" \
LC_ALL="ja_JP.UTF-8"
EXPOSE 8888
# JupyterLabの起動
# --NotebookApp.tokenでトークン(jupyter)を指定
# 起動時のディレクトリを/workに設定
ENTRYPOINT ["jupyter-lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token='jupyter'", "--notebook-dir=/work"]
docker-compose.ymlの用意
docker-composeでコンテナを起動するためにdocker-compose.ymlを用意する。Dockerfileでイメージをビルドするようにし、コンテナのポート8888をホスト側の8888で使えるようにする。また、ホスト(Windows)のd:\workをコンテナからマウントして、ここでファイルなどを共有できるようにしておく。
version: "3"
services:
jupyter:
build:
context: .
dockerfile: Dockerfile
container_name: jupyter
volumes:
# ホストのd:\workをコンテナの/workにマウント
- d:\work:/work
ports:
- 8888:8888
コンテナの起動
作成したDockerfileとdocker-compose.ymlを同じフォルダに置いて、docker-composeコマンドでコンテナを起動する。
コンテナの確認
ホストでブラウザからlocalhost:8888にアクセスするとJupyterLabのログイン画面が表示される。Dockerfileで指定したトークンでログインできる。

ロケールもちゃんと変更されている。
0 件のコメント:
コメントを投稿