nvidia-container-toolkit 国内镜像源安装

在国内安装 nvidia-container-toolkit 时,由于访问 NVIDIA 官方源较慢或失败,可以使用以下方式通过 国内镜像源 加速安装,适用于 Docker 支持 GPU 的容器环境搭建。


env

  • ubuntu22.04

1.docker-ce

2.设置国内源(推荐清华源)

中科大

2.1 apt

2.1.1.config nvidia-docker.list

1
2
3
4
5
6
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)  # 例如:ubuntu20.04

curl -s -L https://mirrors.tuna.tsinghua.edu.cn/nvidia-docker/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-docker-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/nvidia-docker-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/nvidia-docker/apt/${distribution} /" \
| sudo tee /etc/apt/sources.list.d/nvidia-docker.list

⚠️ 注意替换 ${distribution} 为你的系统版本。

清华源地址:https://mirrors.tuna.tsinghua.edu.cn/nvidia-docker

如果你在使用 Debian,也可以切换为阿里云(手动方式):

1
2
# 替换为阿里云 docker 源(仅 docker CE,不含 nvidia)
sudo sed -i 's#download.docker.com#mirrors.aliyun.com/docker-ce#g' /etc/apt/sources.list.d/docker.list

中科大源

1.加key
curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

2.生成list
curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

3.查看list
root@gpu-develop-dev:~# cat /etc/apt/sources.list.d/cuda-ubuntu2204-x86_64.list 
deb [signed-by=/usr/share/keyrings/cuda-archive-keyring.gpg] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /

2.1.2安装 NVIDIA Container Toolkit

1
2
3
4
5
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

# 验证
nvidia-container-cli --version

如需安装旧版兼容层支持:

1
sudo apt-get install -y nvidia-docker2

2.2 dnf/yum

2.2.1.download nvidia-container-toolkit.repo

curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sed 's#nvidia.github.io/libnvidia-container/stable/#mirrors.ustc.edu.cn/libnvidia-container/stable/#g' |
  sed 's#nvidia.github.io/libnvidia-container/experimental/#mirrors.ustc.edu.cn/libnvidia-container/experimental/#g' |
  sed 's#gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey#gpgkey=https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey#g ' |
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo

ok-/etc/yum.repos.d/nvidia-container-toolkit.repo

[nvidia-container-toolkit]
name=nvidia-container-toolkit
baseurl=https://mirrors.ustc.edu.cn/libnvidia-container/stable/rpm/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[nvidia-container-toolkit-experimental]
name=nvidia-container-toolkit-experimental
baseurl=https://mirrors.ustc.edu.cn/libnvidia-container/experimental/rpm/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=0
gpgkey=https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

2.2.2 安装 NVIDIA Container Toolkit

dnf makecache
dnf install -y nvidia-container-toolkit

3. 配置 Docker 使用 NVIDIA 运行时

基于命令自动配置docker相关

nvidia-ctk runtime configure --runtime=docker

编辑或创建 /etc/docker/daemon.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"log-driver": "json-file",
"log-opts": {
"max-file": "3",
"max-size": "1024m"
},
"max-concurrent-downloads": 10,
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}

然后重启 Docker:

1
2
sudo systemctl daemon-reexec
sudo systemctl restart docker

4. 验证 GPU 是否可用

1
2
3
4
docker run --rm --gpus all nvidia/cuda:12.3.1-base-ubuntu22.04 nvidia-smi

docker run -it --gpus all python:3.13 bash
nvidia-smi

输出应显示 NVIDIA GPU 信息。

5.docker/docker-compsoe支持

services:
  ollama:
    image: ollama/ollama:0.5.4
    container_name: ${CONTAINER_NAME}
    restart: unless-stopped
    ports:
      - ${PANEL_APP_PORT_HTTP}:11434
    networks:
      - 1panel-network
    tty: true
    volumes:
      - ./data:/root/.ollama
    labels:
      createdBy: "Apps"
    # 添加 GPU 支持
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    # 如果使用 NVIDIA Container Toolkit,可以添加以下环境变量
    environment:
      NVIDIA_VISIBLE_DEVICES: all
      NVIDIA_DRIVER_CAPABILITIES: "compute,utility"

networks:
  1panel-network:
    external: true


# 添加 GPU 支持
deploy:
  resources:
    reservations:
      devices:
        - capabilities: [gpu]
# 如果使用 NVIDIA Container Toolkit,可以添加以下环境变量
environment:
  NVIDIA_VISIBLE_DEVICES: all
  NVIDIA_DRIVER_CAPABILITIES: "compute,utility"

6常见问题

  • nvidia-smi 失败:确认宿主机 NVIDIA 驱动已正确安装(使用 nvidia-smi 测试)。
  • 驱动未加载:检查 lsmod | grep nvidia 是否有输出。
  • WSL2 用户需单独配置 GPU passthrough。

7.镜像源参考

来源 地址
清华源 https://mirrors.tuna.tsinghua.edu.cn/nvidia-docker/
阿里云 Docker CE https://mirrors.aliyun.com/docker-ce
华为源 https://repo.huaweicloud.com(无 nvidia-docker)