> 技术文档 > 在 Docker 容器中使用宿主机的 GPU_docker gpu

在 Docker 容器中使用宿主机的 GPU_docker gpu

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


1. 宿主机环境准备

确保宿主机已正确安装:

  • NVIDIA 显卡驱动

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

    docker --version # 确保 Docker 已安装

2. 安装 NVIDIA Container Toolkit

要在 Ubuntu 上安装 NVIDIA Container Toolkit(用于在 Docker 中运行使用 GPU 的容器,如 PyTorch、TensorFlow、CUDA 等),你可以按下面步骤来安装,确保稳定并支持你的驱卡:


🔹 步骤 1:设置 NVIDIA 官方源(含密钥)

distribution=$(. /etc/os-release; echo $ID$VERSION_ID) # 通常是 ubuntu22.04# 添加 GPG 密钥(新方式,避免 apt-key 警告)curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/nvidia-container.gpg# 添加 NVIDIA 源列表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:更新 APT 源并安装 NVIDIA Container Toolkit

sudo apt updatesudo apt install -y nvidia-container-toolkit

🔹 步骤 3:配置 Docker 使用 NVIDIA 运行时

执行以下命令:

sudo nvidia-ctk runtime configure --runtime=docker

然后重启 Docker:

sudo systemctl restart docker

🔹 步骤 4:测试 GPU 支持是否正常

运行一个带 GPU 的 CUDA 容器:

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

常见问题

  • 错误 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 官方文档。