安装 Docker 支持 NVIDIA 显卡的依赖

安装 Docker 支持 NVIDIA 显卡的依赖

确保系统已安装 NVIDIA 显卡驱动和 CUDA 工具包。使用以下命令检查驱动是否安装:

bash 复制代码
nvidia-smi

若未安装,需先安装 NVIDIA 驱动和 CUDA。以下以 Ubuntu 为例:

bash 复制代码
sudo apt update
sudo apt install -y nvidia-driver-510 nvidia-cuda-toolkit

安装 NVIDIA Container Toolkit

添加 NVIDIA Container Toolkit 的仓库并安装相关依赖:

bash 复制代码
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

更新软件包列表并安装 nvidia-container-toolkit

bash 复制代码
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

重启 Docker 服务以应用更改:

bash 复制代码
sudo systemctl restart docker

验证 NVIDIA 容器运行时

运行一个测试容器,验证 GPU 是否可用:

bash 复制代码
docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

若输出与直接在主机运行 nvidia-smi 类似的结果,则配置成功。

配置 Docker 默认运行时

编辑 /etc/docker/daemon.json 文件,确保包含以下内容:

json 复制代码
{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    },
    "default-runtime": "nvidia"
}

重新加载 Docker 配置并重启服务:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

使用 GPU 运行容器

在运行容器时,通过 --gpus 参数指定 GPU 资源。例如:

bash 复制代码
docker run --gpus all -it tensorflow/tensorflow:latest-gpu

若需限制 GPU 数量或指定设备,可调整参数:

bash 复制代码
docker run --gpus '"device=0,1"' -it pytorch/pytorch:latest

常见问题排查

若遇到权限问题,确保当前用户已加入 docker 用户组:

bash 复制代码
sudo usermod -aG docker $USER
newgrp docker

若容器内无法识别 GPU,检查 nvidia-container-toolkit 是否安装正确,并确认 Docker 服务已重启。