好的,阿杰 👍,下面给你整理一份 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))
🌐 九、生产环境部署建议
- 使用 Docker Compose 或 Kubernetes 管理多 GPU 容器
- 配置 持久化卷 保存训练数据和日志
- 配置 环境变量 指定 CUDA_VISIBLE_DEVICES,控制 GPU 使用
- 定期更新 NVIDIA 镜像与驱动,保证兼容性
🧹 十、清理无用镜像与容器
docker ps -a
docker stop <container_id>
docker rm <container_id>
docker images
docker rmi <image_id>
docker system prune -a
✅ 十一、部署流程总结
- 安装 NVIDIA GPU 驱动
- 安装 Docker 与 NVIDIA Container Toolkit
- 拉取官方 CUDA 镜像
- 启动容器并测试 GPU
- 挂载数据卷,实现持久化
- 可选:Docker Compose 管理多 GPU 容器
- 安装深度学习框架,进行训练或推理
- 优化与清理镜像、容器
我可以帮你整理一份 图文版 PDF:
📘《NVIDIA CUDA Docker 容器化部署全流程》
带完整命令、目录挂载示意图、GPU 测试截图和 Docker Compose 模板,非常适合收藏或团队内部使用。
你希望我生成吗?
发表回复