Python
docker
Jupyter

黒背景でvimキーバインドなJupyterLabを起動するDockerイメージ

Dockerfile
FROM jupyter/datascience-notebook

# 公式のイメージではユーザーがjovyan(Jupyter Userのことをこう呼ぶらしい)
# 深い意味はなく他ユーザーを作成するが省略可能
USER root

RUN groupadd student && useradd -m -g student student
RUN mkdir /home/student/notebooks
RUN chown -R student:student /home  # プラグインインストールには/home/jovyan以下への権限が必要

# vimキーバインドのプラグインインストール
RUN jupyter labextension install jupyterlab_vim

# 黒背景設定を追加
RUN mkdir -p /home/jovyan/.jupyter/lab/user-settings/@jupyterlab/apputils-extension
RUN echo '{"theme":"JupyterLab Dark"}' > \
  /home/jovyan/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings

# 作成したユーザーへ変更
USER student
WORKDIR /home/student
docker-compose.yaml
version: '3'
services:
  jupyterlab:
    build: .
    ports:
      - '8888:8888'
    volumes:  # カレントディレクトリの/notebooks以下をマウント
      - "./notebooks:/home/student/notebooks"
    command: start.sh jupyter lab
|.
├── Dockerfile
├── docker-compose.yaml
└── notebooks
    ├── foo.ipynb
    └── bar.ipynb

のように配置して

docker-compose up

で起動、ターミナル上に表示されるアドレスにブラウザでアクセスしてJupyterLabへ


なぜJovyanかはGitHubのIssueで議論されていました、そのままでも問題は特にないかと思います(ユーザー別に作ってるのはこのIssue探り当てるまでちょっと気持ち悪かった、ただそれだけです