docker
Jupyter
docker-compose
JupyterLab

Docker-composeでJupyterLabを簡単構築

1.目的

JupyterLabをdocekr-composeでサクッと立ち上げる。自分用のメモ。
dockerもdocker-composeもはじめて数日なので他によりよい方法はあるのかもしれない。

Docker導入までは以下を参照。
https://qiita.com/tsnb/items/d10d2770c08abc60b500

2.前提

  • ホスト(物理サーバ)
  • OS:CentOS Linux 7 (Core)
  • docker Ver:17.09.0-ce
  • docker-compose Ver:1.17.0

3.docker-compose.ymlを書く

docker-compose.yml
version: '3'

services:
  jupyterlab:
    image: jupyter/tensorflow-notebook:latest
    user: root
    environment:
      NB_UID: 1000
      NB_GID: 100
      GRANT_SUDO: "yes"
    volumes:
       - "./work:/home/jovyan/work"
    privileged: true
    ports:
      - "8888:8888"
    restart: unless-stopped
    command: start.sh jupyter lab --NotebookApp.token=''

詳細なtensorflow-notebookに関する情報は以下を確認する。
https://github.com/jupyter/docker-stacks/tree/master/tensorflow-notebook

コメント付き
# docker-composeのバージョン、最新は3
version: '3'

services:
  jupyterlab:
    # 今回はこのtensorflow-notebook:latestイメージを利用する。
    # JupyterLabが既にインストール済。
    # pipで何か追加したい場合などはDockerfileを書く。
    image: jupyter/tensorflow-notebook:latest
    user: root
    # URLに書いてある設定を読んで以下のenvironmentを書く。
    environment:
      NB_UID: 1000
      NB_GID: 100
      GRANT_SUDO: "yes"
    # コンテナの/jobyan/work以下をホストの./workにおいてデータ永続化する。
    volumes:
       - "./work:/home/jovyan/work"
    privileged: true
    # (ホストポート:コンテナポート)
    ports:
      - "8888:8888"
    restart: unless-stopped
    # パスワード設定などとりあえずめんどくさいのでtokenを空にしてすぐ使えるようにする。
    # (起動テスト用なので実際にはパスワードなどを設定してください)
    command: start.sh jupyter lab --NotebookApp.token=''