GPU docker容器环境打通
·
🧱 第一步:确认宿主机GPU正常
先在宿主机(不是容器)直接跑:
root@prod102:/models/deepseek-v3.2# nvidia-smi
Tue Apr 21 17:15:05 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.120 Driver Version: 550.120 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA H20 On | 00000000:00:03.0 Off | 0 |
| N/A 38C P0 125W / 500W | 18310MiB / 97871MiB | 0% Default |
| | | Disabled |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 47261 C ...aconda3/envs/mxh_env/bin/python3.11 2306MiB |
| 0 N/A N/A 47262 C ...aconda3/envs/mxh_env/bin/python3.11 1534MiB |
| 0 N/A N/A 47263 C ...aconda3/envs/mxh_env/bin/python3.11 2978MiB |
| 0 N/A N/A 47264 C ...aconda3/envs/mxh_env/bin/python3.11 1822MiB |
| 0 N/A N/A 49609 C ...conda3/envs/mxh_live/bin/python3.11 1306MiB |
| 0 N/A N/A 49610 C ...conda3/envs/mxh_live/bin/python3.11 1306MiB |
| 0 N/A N/A 49611 C ...conda3/envs/mxh_live/bin/python3.11 1306MiB |
| 0 N/A N/A 49612 C ...conda3/envs/mxh_live/bin/python3.11 1306MiB |
| 0 N/A N/A 53142 C ...aconda3/envs/mxh_env/bin/python3.11 1080MiB |
| 0 N/A N/A 53143 C ...aconda3/envs/mxh_env/bin/python3.11 1082MiB |
| 0 N/A N/A 53144 C ...aconda3/envs/mxh_env/bin/python3.11 1116MiB |
| 0 N/A N/A 53145 C ...aconda3/envs/mxh_env/bin/python3.11 1118MiB |
+-----------------------------------------------------------------------------------------+
👉 结果判断:
✅ 正常
能看到:
- GPU型号
- 显存
- Driver Version
➡️ 说明驱动OK,继续下一步
❌ 报错(最常见)
比如:
- command not found
- NVIDIA-SMI has failed
👉 说明:驱动没装好或坏了
✔️ 解决:
去装官方驱动(一定要匹配显卡)
👉 推荐直接用 NVIDIA 官方驱动:
Ubuntu例子:
sudo apt update
sudo apt install -y nvidia-driver-535
sudo reboot
然后再跑 nvidia-smi
🐳 第二步:确认 Docker 正常
docker -v
如果没有:
sudo apt install -y docker.io
sudo systemctl enable docker
sudo systemctl start docker
⚙️ 第三步:安装 GPU 容器支持(核心)
👉 这是你这个问题最关键的一步
安装:nvidia-container-toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
🔧 配置 Docker 使用 GPU
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
🚀 第四步:重新测试(关键验证)
docker run --gpus all nvidia/cuda:12.2.0-base nvidia-smi
❗ 常见报错 → 对应解决
❌ 1. could not select device driver "" with capabilities: [[gpu]]
👉 说明:Docker不认识GPU
✔️ 解决:
- 没装 nvidia-container-toolkit
- 或没执行 runtime configure
❌ 2. NVIDIA-SMI has failed
👉 驱动问题
✔️ 解决:
- 重装驱动
- 或版本不匹配
❌ 3. CUDA driver version is insufficient
👉 驱动版本 < CUDA要求
✔️ 解决:
- 升级驱动(优先)
- 或换低版本CUDA镜像(比如11.8)
🧠 一句话理解整个流程
你这套链路是:
GPU硬件
↓
NVIDIA驱动
↓
Docker
↓
nvidia-container-toolkit
↓
CUDA容器
↓
你的大模型(vLLM)
👉 任何一层断了,都会失败
💡 给你一个更稳的建议(做大模型部署)
如果你是跑:
- vLLM
- TGI
- llama.cpp GPU版
👉 推荐用:
nvidia/cuda:12.1.1-runtime-ubuntu22.04
兼容性更稳(比12.2更通用)
更多推荐
所有评论(0)