欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 在 Docker 容器中使用宿主机的 GPU

在 Docker 容器中使用宿主机的 GPU

2025/6/12 18:22:52 来源:https://blog.csdn.net/u011091936/article/details/148522004  浏览:    关键词:在 Docker 容器中使用宿主机的 GPU

在 Docker 容器中使用宿主机的 GPU(特别是 NVIDIA GPU)需要安装 NVIDIA Container Toolkit(之前称为 nvidia-docker)。以下是详细的配置步骤:


1. 宿主机环境准备

确保宿主机已正确安装:

  • NVIDIA 显卡驱动

    nvidia-smi  # 检查驱动是否安装成功
  • Docker Engine

    docker --version  # 确保 Docker 已安装

2. 安装 NVIDIA Container Toolkit

步骤 1:添加仓库和密钥
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
步骤 2:更新并安装工具包
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit nvidia-container-runtime

运行以下命令检查是否已安装:

which nvidia-container-runtime

运行以下命令检查是否安装了必要的包:

dpkg -l | grep -E "nvidia-container-(toolkit|runtime)"
步骤 3:重启 Docker 服务
sudo systemctl restart docker

3. 验证安装

运行一个测试容器(如 nvidia/cuda:11.0-base):

docker run --rm --gpus all  nvidia/cuda:12.8.1-base-ubuntu22.04 nvidia-smi

如果看到与宿主机相同的 GPU 信息,则配置成功。


4. 运行容器时指定 GPU

  • 使用所有 GPU

    docker run --gpus all your_image
  • 使用特定 GPU(如 GPU 0 和 1):

    docker run --gpus '"device=0,1"' your_image
  • 限制 GPU 内存

    docker run --gpus all --gpus '"device=0,1"' --memory="8g" your_image

5. 其他注意事项

  • CUDA 版本兼容性:容器内的 CUDA 版本需 ≤ 宿主机的驱动版本(通过 nvidia-smi 顶部显示的 CUDA Version 查看)。

  • 非 NVIDIA GPU:如果是 AMD/Intel GPU,需使用对应的 Docker 插件(如 rocm 或 intel-gpu)。

  • Kubernetes 支持:若需在 Kubernetes 中使用 GPU,需配置 nvidia-device-plugin


常见问题

  • 错误 docker: Error response from daemon: could not select device driver...
    确保 nvidia-container-toolkit 已安装并重启 Docker。

  • CUDA 版本不匹配
    拉取与宿主机驱动兼容的 CUDA 镜像,例如:

    docker pull  nvidia/cuda:12.8.1-base-ubuntu22.04  # 根据实际情况选择版本

通过以上步骤,Docker 容器即可直接调用宿主机 GPU 资源。如果需要更复杂的配置(如多 GPU 隔离),可参考 NVIDIA Container Toolkit 官方文档。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词