在 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 官方文档。