Moodle + JupyterHub 連携システム シリーズ(7)
7. コンテナイメージ
本システムで利用できるコンテナイメージは GitHub のリポジトリ に格納されています.
7.1 利用できるコンテナイメージ
7.1.1 コンテナイメージ
本システムでは 専用のコンテナイメージ を使用します.
通常の JupyterHub 用コンテナイメージも起動自体は可能ですが,本システム向けに用意されているコンテナに対する拡張機能は全て使用できません.
ただし,通常の JupyterHub 用コンテナイメージを,本システム用の専用コンテナイメージに書き換えることは難しくありません(「7.2 専用コンテナイメージの作成」を参照してください).
コンテナイメージは docker pull イメージ名 でダウンロードできます.
- 例
docker pull ghcr.io/jupyter-fumihax/jupyterhub-ltictr.singleuser
また,LTIContainerSpawner に付属しているスクリプトを使用すると,主要なコンテナイメージを一括でダウンロードできます.
git clone https://github.com/jupyter-fumihax/lticontainerspawner
cd lticontainerspawner
sh/dockerpull.sh # 主要なイメージファイルの一括ダウンロード
注)
コンテナイメージ名の命名規則については別資料を参照してください.
ここではコンテナ技術自体の詳細な解説は行いません.
7.1.2 主要な利用可能コンテナイメージ1(GPU サポートなし)
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.base-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.singleuser
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.datascience-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.tensorflow-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.scipy-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.java-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.php-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.rust-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.swift-tensorflow
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.xeus-cling
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.xeus-ijs
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.vhtec-notebook
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.jupyterlab-broccoli
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.jupyterlab-broccoli-tensorflow
7.1.3 主要な利用可能コンテナイメージ2(GPU サポートあり)
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.cuda-ubuntu20
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.base-notebook-gpu
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.tensorflow-notebook-gpu
ghcr.io/jupyter-fumihax/jupyterhub-ltictr.scipy-notebook-gpu
7.1.4 各コンテナイメージの概要
以下に主要なコンテナイメージの概要を示します.
バージョン表記は執筆時点(2026年初頭)における :latest タグの構成例です.
-
jupyterhub-ltictr.base-notebook
quay.io/jupyter/base-notebook をベースにした,最も単純なイメージです.
-
jupyterhub-ltictr.singleuser
quay.io/jupyterhub/singleuser をベースにした基本的なイメージです.
通常の Python 演習であれば,本イメージで十分です.
-
jupyterhub-ltictr.datascience-notebook
quay.io/jupyter/datascience-notebook をベースにした,データサイエンス用途向けイメージです.
Python に加えて Julia や R の実行環境が含まれています.
Python 3.13, Julia 1.12, R 4.4
pluto を起動する場合は 「9.2.1 datascience-notebook で pluto が起動できない」 を参照してください.
-
jupyterhub-ltictr.tensorflow-notebook
NumPy,pandas,matplotlib などの 機械学習で定番の Python ライブラリ を含む
quay.io/jupyter/tensorflow-notebook をベースにしたイメージです.
-
jupyterhub-ltictr.scipy-notebook
数値計算・データ解析向けの quay.io/jupyter/scipy-notebook をベースにしたイメージです.
-
jupyterhub-ltictr.java-notebook
quay.io/jupyterhub/singleuser に iJava(Java 用 Jupyter カーネル) を組み込んだイメージです.
ランチャー上のアイコン表示が JavaScript と紛らわしくなっており,申し訳ありません.
Python 3.13, Java OpenJDK 11.0 (iJava), Node 18.20, TypeScript 5.9
-
jupyterhub-ltictr.php-notebook
quay.io/jupyterhub/singleuser をベースに,Composer 経由で導入した rabrennie/jupyter-php-kernel を PHP カーネルとして使用しているイメージです.
-
jupyterhub-ltictr.rust-notebook
quay.io/jupyterhub/singleuser をベースに,evcxr_jupyter を Rust カーネルとしたイメージです.
-
jupyterhub-ltictr.swift-tensorflow
gcr.io/swift-tensorflow/base-deps-ubuntu20.04 をベースとし,Swift for TensorFlow(S4TF)RELEASE 0.13 の公式バイナリを組み込んだ Swift 用のイメージです.
-
jupyterhub-ltictr.xeus-cling
quay.io/jupyterhub/singleuser に xeus-cling 0.15 を追加したイメージです.
-
jupyterhub-ltictr.xeus-ijs
xeus-cling に加えて,bash,Java,PHP,Node を含む多機能イメージです.
Python 3.13, Clang 13.3 (C/C++), Java OpenJDK 11.0, Node 18.20, PHP 8.3
-
jupyterhub-ltictr.vhtec-notebook
quay.io/jupyter/tensorflow-notebook を基盤とし,vhtec 氏 が公開している Docker イメージで採用されている 構成手法を参考に作成した派生イメージ です.
※ 元になっているイメージは vhtec 氏本人が公開しているイメージそのものではありません
-
jupyterhub-ltictr.jupyterlab-broccoli
quay.io/jupyterhub/singleuser をベースに,ビジュアルプログラミング用の 改良型 Blockly Editor(Broccoli Editor)を追加したイメージです.グラフィックスを使用するため,コンテナのメモリは 1GiB 以上必要です.
現時点では Broccoli Editor は Python にしか対応していませんが,将来の対応予定言語も追加されています.
Python 3.13, Node 18.20, Lua 5.4, TypeScript 5.9, JupyterLab-Broccoli 0.4
-
jupyterhub-ltictr.jupyterlab-broccoli-tensorflow
jupyterhub-ltictr.jupyterlab-broccoli に tensorflow を追加したイメージです.
グラフィックスを使用するため,コンテナのメモリは 1GiB 以上必要です.
Python 3.13, Node 18.20, Lua 5.4, TypeScript 5.9, JupyterLab-Broccoli 0.4
-
jupyterhub-ltictr.cuda-ubuntu20
NVIDIA CUDA 12.2(runtime) + Ubuntu 20.04 をベースにした,最小限の GPU 対応学習環境用イメージです.開発用のコンパイラ群は入っていません.
-
jupyterhub-ltictr.base-notebook-gpu
NVIDIA CUDA 12.2 + Ubuntu 20.04 をベースにした,GPU 対応学習環境用 singleuser イメージです.
nvidia-cuda-dev を追加しているので,開発も可能です.
-
jupyterhub-ltictr.tensorflow-notebook-gpu
base-notebook-gpu に tensorflow を追加したイメージです.
-
jupyterhub-ltictr.scipy-notebook-gpu
base-notebook-gpu に scipy を追加したイメージです.
7.2 専用コンテナイメージの作成
通常の JupyterHub用コンテナイメージを,本システム用に書き換えることが可能です.本システムで使用するイメージは,通常の JupyterHub 用コンテナイメージに対して,起動時設定ファイル start.sh とその他の 補助スクリプト・ツールを幾つかコピーするだけで作成できます.
具体的な作成方法は,LTIContainerSpawner をダウンロードしたディレクトリにある Dockerfile を使用します.
cd lticontainerspawner
vi Dockerfile # FROM ..... を書き換える
Dockerfile の編集では,上部にある FROM に書き換えたい イメージ名を指定するだけです.ここに quay.io / docker.io / ghcr.io などで公開されている通常の JupyterHub 用コンテナイメージ名,またはローカルなコンテナイメージ名を指定します.
例)FROM quay.io/jupyterhub/singleuser
書き換えたら,以下のコマンドを実行します.
docker build . -t 新しいイメージ名:タグ名
:タグ名 を省略した場合は,:latest になります.またコンテナシステムに Podman を使用している場合は,--format=docker オプションを追加すると余計なワーニングを抑えることができます.
例)
docker build . --format=docker -t ltctr_singleuser:20260101
上記の 例)のコマンドを実行した場合,新たに localhost/ltctr_singleuser:20260101 というイメージが作成されます.
シリーズ「LTI カスタムパラメータによる Moodle+JupyterHub 連携システムの構築と運用」第7回
第1回に戻る | 前へ:運用方法 (構築中!) | 次へ:応用(オプション機能,大規模運用,NFS)(構築中!)












