容器里怎么用上 GPU,是 Docker+Cuda 沙箱的核心。本条给设备透传的速查。
nvidia-smi 正常)。nvidia-container-toolkit),它负责把宿主机的 GPU 设备文件和 CUDA 库挂进容器。docker run --gpus all 让容器看到所有 GPU。--gpus 2 只给前两张。--gpus '"device=1,3"' 指定特定 GPU(用编号)。
在 docker-compose 里:
services: inference: deploy: resources: reservations: devices: - driver: nvidia count: 2 capabilities: [gpu]
could not select device driver "nvidia":NVIDIA Container Toolkit 没装或没重启 docker daemon。CUDA driver version is insufficient:宿主机驱动太老,不支持容器里的 CUDA 版本。升级驱动。nvidia-smi 找不到 GPU:检查 --gpus 是否传了,以及 toolkit 是否正常。详细原理见正文第三章 3.1「NVIDIA Container Runtime 的调用链剖析」。