NVIDIA コンテナ・ツールキット(Ubuntu 上)

NVIDIA コンテナ・ツールキット(NVIDIA Container Toolkit)は,NVIDIA CUDA をコンテナで動かすためのソフトウェアである.

公式手順:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html

前準備

NVIDIA グラフィックス・ボードの確認とドライバのインストール

グラフィックス・カードの確認

CUDA 対応の GPU であるかを確認のため, 端末で,次のコマンドを実行する.

lspci | grep -i nvidia | grep VGA

表示が空になるときは,NVIDIA のグラフィックス・カードが搭載されていない.その場合,このページの手順は実行できない.

NVIDIA ドライバのインストール

NVIDIA グラフィックス・ボードがある場合に限り,ドライバのインストールを行う.

  1. 端末で,次のコマンドを実行する.
    sudo ubuntu-drivers autoinstall
    
  2. ドライバのインストール後は,システムの再起動を行う.
    sudo shutdown -r now
    
  3. 確認

    システムの再起動後,端末で,次のコマンドを実行し,ドライバを確認する.

    先頭の「Driver Version」のところに,ドライバのバージョンが表示される.NVIDIA CUDA がインストール済みのときは,CUDA のバージョンも表示される.

    nvidia-smi
    

Docker のインストール

端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
# Docker のインストール
sudo apt -y install docker.io
Docker 公式リポジトリの docker-ce を使う場合は,Ubuntu 標準の docker.io競合するため,どちらか一方のみをインストールする.

NVIDIA コンテナ・ツールキットのインストール

  1. 前提パッケージのインストール

    端末で,次のコマンドを実行する.

    sudo apt update
    sudo apt -y install --no-install-recommends ca-certificates curl gnupg2
    
  2. リポジトリの設定

    端末で,次のコマンドを実行する.GPG 鍵を /usr/share/keyrings に登録し,リポジトリ定義を /etc/apt/sources.list.d に追加する.

    curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
        sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
        sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
    
    このリポジトリは,Ubuntu のバージョンによらず共通である.旧来の nvidia-docker リポジトリおよび nvidia-docker2 パッケージは廃止されており,現在は上記の libnvidia-container リポジトリを使用する.
  3. インストール

    端末で,次のコマンドを実行する.

    # パッケージリストの情報を更新
    sudo apt update
    sudo apt -y install nvidia-container-toolkit
    
  4. Docker への設定と再起動

    端末で,次のコマンドを実行する.nvidia-ctk/etc/docker/daemon.json を書き換え,Docker が NVIDIA Container Runtime を使用できるようにする.

    sudo nvidia-ctk runtime configure --runtime=docker
    sudo systemctl restart docker
    

NVIDIA コンテナ・ツールキットを使ってみる

GPU がコンテナから利用できることを確認する. 端末で,次のコマンドを実行する.ホスト側と同じ「Driver Version」が表示されれば成功である.

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

CUDA ツールキットを含むコンテナを対話的に使うときは, 端末で,次のコマンドを実行する.タグは nvidia/cuda のタグ一覧から,ホストのドライバが対応する CUDA バージョンを選ぶ.

sudo docker run -it --rm --runtime=nvidia --gpus all nvidia/cuda:12.6.0-base-ubuntu24.04 /bin/bash
nvidia-smi
exit