ZeroLoom

CUDA Toolkit ベースのコンテナに GPU を割り当てる

January 31, 2025
2 min read
Table of Contents

ホスト OS 上に NVIDIA ドライバーと CUDA Toolkit をインストール


  1. apt リポジトリを更新
bash
sudo apt update & apt upgrade -y
  1. NVIDIA の PPA リポジトリを追加
bash
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
  1. 最新の NVIDIA Driver を確認
bash
sudo apt list -a nividia-driver-*
  1. NVIDIA Driver をインストール
bash
sudo apt install nividia-driver-<version>
  1. 再起動
bash
sudo reboot
  1. CUDA Toolkit をインストール
bash
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb && \
  dpkg -i cuda-keyring_1.1-1_all.deb && \
  rm cuda-keyring_1.1-1_all.deb
bash
sudo apt update && apt install -y cuda-toolkit-12-8
  1. 環境変数を ~/.profile に追加
bash
echo 'export PATH=/usr/local/cuda-12.8/bin${PATH:+:${PATH}}' >> ~/.profile
bash
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.profile
bash
source ~/.profile

Docker イメージとコンテナを作成


Dockerfile
FROM ubuntu:24.04
 
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ Asia/Tokyo
WORKDIR /app
 
RUN apt update && apt install -y \
    build-essential \
    curl \
    wget \
    ca-certificates \
    gnupg \
    lsb-release \
    vim \
    git \
    less \
    && apt clean && rm -rf /var/lib/apt/lists/*
 
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb && \
    dpkg -i cuda-keyring_1.1-1_all.deb && \
    rm cuda-keyring_1.1-1_all.deb
 
RUN apt update && apt install -y cuda-toolkit-12-8
 
ENV PATH="/usr/local/cuda-12.8/bin:${PATH}"
ENV LD_LIBRARY_PATH="/usr/local/cuda-12.8/lib64:${LD_LIBRARY_PATH}"
docker-compose.yml
services:
  cuda-app:
    build: .
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
  tty: true
bash
docker compose -f docker-compose.yml build
bash
docker compose -f docker-compose.yml up -d