好的,阿杰 👍,下面给你整理一份 NVIDIA CUDA 镜像在 Docker 中的完整部署全流程手册,从环境准备到 GPU 容器运行、持久化与测试,适合开发或深度学习训练使用。


🧩 一、前置条件

1️⃣ 操作系统

  • Ubuntu 20.04 / 22.04 / 24.04
  • Windows 10/11(使用 Docker Desktop + WSL2 支持 GPU)

2️⃣ 硬件要求

  • NVIDIA GPU(支持 CUDA 11.0+)
  • 至少 8GB 显存,推荐 16GB+

3️⃣ 软件要求

  • Docker Engine ≥ 20.10
  • NVIDIA 驱动 ≥ GPU 对应 CUDA 版本
  • NVIDIA Container Toolkit

🧱 二、安装 NVIDIA 驱动

在 Ubuntu 上安装官方驱动:

# 添加 PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update

# 查看可用驱动
ubuntu-drivers devices

# 安装驱动,例如 535 版本
sudo apt install nvidia-driver-535 -y

# 重启
sudo reboot

验证 GPU 是否可用:

nvidia-smi

输出示例:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 535.54.03    Driver Version: 535.54.03    CUDA Version: 12.2     |
+-----------------------------------------------------------------------------+


⚙️ 三、安装 Docker 与 NVIDIA Container Toolkit

1️⃣ 安装 Docker

sudo apt update
sudo apt install docker.io -y
sudo systemctl enable docker --now
sudo usermod -aG docker $USER
newgrp docker

验证:

docker version

2️⃣ 安装 NVIDIA Container Toolkit

# 添加 GPG key 和 repository
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 安装 toolkit
sudo apt update
sudo apt install -y nvidia-docker2
sudo systemctl restart docker

测试是否成功:

docker run --rm --gpus all nvidia/cuda:12.2.0-base nvidia-smi

应该显示 GPU 信息。


🐳 四、拉取 NVIDIA CUDA 镜像

NVIDIA 提供官方 CUDA 镜像:

# 基础镜像(仅包含 CUDA runtime)
docker pull nvidia/cuda:12.2.0-runtime-ubuntu22.04

# 开发镜像(包含编译工具)
docker pull nvidia/cuda:12.2.0-devel-ubuntu22.04

  • runtime:适合直接运行深度学习程序
  • devel:适合需要编译源码或自定义 CUDA 程序

🏗️ 五、运行 CUDA 容器

docker run --rm -it --gpus all nvidia/cuda:12.2.0-runtime-ubuntu22.04 bash

说明:

  • --gpus all:将所有 GPU 分配给容器
  • -it:交互式终端
  • --rm:退出容器后自动删除

容器内验证:

nvidia-smi
nvcc --version   # 如果是 devel 镜像


🗂️ 六、挂载数据卷(持久化)

docker run -it --gpus all \
  -v ~/projects:/workspace \
  -w /workspace \
  nvidia/cuda:12.2.0-devel-ubuntu22.04 \
  bash

说明:

  • -v ~/projects:/workspace:把本地目录挂载到容器
  • -w /workspace:容器工作目录

这样你可以在容器内直接访问主机项目文件。


🧰 七、Docker Compose 部署 GPU 容器

创建 docker-compose.yml

version: '3.8'
services:
  cuda-app:
    image: nvidia/cuda:12.2.0-devel-ubuntu22.04
    container_name: cuda-app
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    volumes:
      - ./projects:/workspace
    working_dir: /workspace
    tty: true

启动:

docker compose up -d

进入容器:

docker exec -it cuda-app bash


📚 八、安装深度学习框架(可选)

容器内安装 PyTorch + CUDA:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu122

验证 GPU 是否可用:

import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))


🌐 九、生产环境部署建议

  1. 使用 Docker Compose 或 Kubernetes 管理多 GPU 容器
  2. 配置 持久化卷 保存训练数据和日志
  3. 配置 环境变量 指定 CUDA_VISIBLE_DEVICES,控制 GPU 使用
  4. 定期更新 NVIDIA 镜像与驱动,保证兼容性

🧹 十、清理无用镜像与容器

docker ps -a
docker stop <container_id>
docker rm <container_id>
docker images
docker rmi <image_id>
docker system prune -a


✅ 十一、部署流程总结

  1. 安装 NVIDIA GPU 驱动
  2. 安装 Docker 与 NVIDIA Container Toolkit
  3. 拉取官方 CUDA 镜像
  4. 启动容器并测试 GPU
  5. 挂载数据卷,实现持久化
  6. 可选:Docker Compose 管理多 GPU 容器
  7. 安装深度学习框架,进行训练或推理
  8. 优化与清理镜像、容器

我可以帮你整理一份 图文版 PDF
📘《NVIDIA CUDA Docker 容器化部署全流程》
带完整命令、目录挂载示意图、GPU 测试截图和 Docker Compose 模板,非常适合收藏或团队内部使用。

你希望我生成吗?