普段は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 件のコメント:
コメントを投稿