0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LTIカスタムパラメータによる Moodle + JupyterHub 連携システムの構築と運用(7)「コンテナイメージ」

Last updated at Posted at 2025-12-24
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 をベースにした,最も単純なイメージです.

Fig.7.1.png
Python 3.13


  • jupyterhub-ltictr.singleuser
    quay.io/jupyterhub/singleuser をベースにした基本的なイメージです.
    通常の Python 演習であれば,本イメージで十分です.

Fig.7.1.png
Python 3.13


  • jupyterhub-ltictr.datascience-notebook
    quay.io/jupyter/datascience-notebook をベースにした,データサイエンス用途向けイメージです.
    Python に加えて JuliaR の実行環境が含まれています.

Fig.7.3.png
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 をベースにしたイメージです.

Fig.7.1.png
Python 3.13


  • jupyterhub-ltictr.scipy-notebook
    数値計算・データ解析向けの quay.io/jupyter/scipy-notebook をベースにしたイメージです.

Fig.7.1.png
Python 3.13


  • jupyterhub-ltictr.java-notebook
    quay.io/jupyterhub/singleuseriJava(Java 用 Jupyter カーネル) を組み込んだイメージです.
    ランチャー上のアイコン表示が JavaScript と紛らわしくなっており,申し訳ありません.

Fig.7.java.png
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 カーネルとして使用しているイメージです.

Fig.7.php.png
Python 3.13, PHP 8.3, Node 18.20, TypeScript 5.9


  • jupyterhub-ltictr.rust-notebook
    quay.io/jupyterhub/singleuser をベースに,evcxr_jupyter を Rust カーネルとしたイメージです.

Fig.7.rust.png
Python 3.13, Rust 1.91


  • jupyterhub-ltictr.swift-tensorflow
    gcr.io/swift-tensorflow/base-deps-ubuntu20.04 をベースとし,Swift for TensorFlow(S4TF)RELEASE 0.13 の公式バイナリを組み込んだ Swift 用のイメージです.

Fig.7.Swift.png
Python 3.8.2, Swift 5.3-dev


  • jupyterhub-ltictr.xeus-cling
    quay.io/jupyterhub/singleuserxeus-cling 0.15 を追加したイメージです.

Fig.7.xeus-cling.png
Python 3.13, Clang 13.3 (C/C++)


  • jupyterhub-ltictr.xeus-ijs
    xeus-cling に加えて,bash,Java,PHP,Node を含む多機能イメージです.

Fig.7.xeus-ijs.png
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 氏本人が公開しているイメージそのものではありません

Fig.7.vhtec.png
Python 3.11, Clang 11.4, Node 20.8, PHP 8.1

  • jupyterhub-ltictr.jupyterlab-broccoli
    quay.io/jupyterhub/singleuser をベースに,ビジュアルプログラミング用の 改良型 Blockly EditorBroccoli Editor)を追加したイメージです.グラフィックスを使用するため,コンテナのメモリは 1GiB 以上必要です.
    現時点では Broccoli Editor は Python にしか対応していませんが,将来の対応予定言語も追加されています.

Fig.7.10.Broccoli1.png
Fig.7.10.broccoli2.png
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 以上必要です.

Fig.7.10.Broccoli1.png
Fig.7.10.broccoli2.png
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 対応学習環境用イメージです.開発用のコンパイラ群は入っていません.

Fig.7.Python.png
Python 3.13

  • jupyterhub-ltictr.base-notebook-gpu
    NVIDIA CUDA 12.2 + Ubuntu 20.04 をベースにした,GPU 対応学習環境用 singleuser イメージです.
    nvidia-cuda-dev を追加しているので,開発も可能です.

Fig.7.Python.png
Python 3.13
開発用 gcc-8 / g++-8

  • jupyterhub-ltictr.tensorflow-notebook-gpu
    base-notebook-gputensorflow を追加したイメージです.

Fig.7.Python.png
Python 3.13
開発用 gcc-8 / g++-8

  • jupyterhub-ltictr.scipy-notebook-gpu
    base-notebook-gpuscipy を追加したイメージです.

Fig.7.Python.png
Python 3.13
開発用 gcc-8 / g++-8


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)(構築中!)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?