核心是通过nvidia container toolkit将宿主机gpu设备、驱动和库安全暴露给容器,关键三步:装工具、配守护进程、启动时用--gpus声明gpu。

直接让 Docker 容器用上宿主机显卡,核心不是“直通”(那是虚拟机概念),而是通过 NVIDIA Container Toolkit 把宿主机的 GPU 设备、驱动和运行时库安全、可控地暴露给容器。配置关键在三步:装工具、配守护进程、启动时声明 GPU。
确认基础环境已就绪
这是最容易出错的前置环节,必须逐项核对:
- 宿主机是 NVIDIA 显卡,且已安装官方驱动(不是开源 nouveau 驱动),运行
nvidia-smi能正常显示 GPU 信息 - Docker Desktop 已启用 WSL2 后端(Windows)或运行在原生 Linux 上(macOS 不支持 NVIDIA GPU 直接访问)
- 系统为 Ubuntu/Debian/CentOS 等主流发行版,Docker 引擎版本 ≥ 20.10
安装并启用 NVIDIA Container Toolkit
这是容器访问 GPU 的桥梁,不能跳过:
- Ubuntu/Debian 示例(以 root 执行):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpgcurl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.listsudo apt-get update && sudo apt-get install -y nvidia-container-toolkit - 安装完成后,**必须重启 Docker 守护进程**:
sudo systemctl restart docker - 验证是否生效:
docker info | grep -i runtime应看到nvidia出现在Runtimes列表中
启动容器时声明 GPU 使用方式
不再需要改 daemon.json 或设默认 runtime,现代 Docker(≥20.10)推荐用 --gpus 参数,灵活且安全:
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
- 用所有 GPU:
docker run --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi - 只用第 0 号 GPU:
docker run --gpus device=0 nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi - 限制可见设备与能力(适合多租户):
docker run --gpus '"device=0,1"' -e NVIDIA_VISIBLE_DEVICES=0,1 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility nvidia/cuda:11.8.0-base-ubuntu20.04
Docker Compose 中写法
在 docker-compose.yml 服务定义下添加:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
或更细粒度控制(v3.8+):
environment: - NVIDIA_VISIBLE_DEVICES=0 - NVIDIA_DRIVER_CAPABILITIES=compute,utility runtime: nvidia
注意:旧版 runtime: nvidia 已不推荐,优先使用 devices 方式。










