docker 支持GPU 问题 安装 NVIDIA Docker

复制代码
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

2. 安装 NVIDIA Docker 工具

NVIDIA Docker 是一个允许 Docker 容器访问 NVIDIA GPU 的工具。你可以通过以下步骤安装它:

复制代码
(base) [root@inspur-nf5468m6-001 docker]# cat /etc/yum.repos.d/nvidia-docker.repo 
[libnvidia-container]
name=libnvidia-container
baseurl=https://nvidia.github.io/libnvidia-container/stable/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[libnvidia-container-experimental]
name=libnvidia-container-experimental
baseurl=https://nvidia.github.io/libnvidia-container/experimental/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=0
gpgkey=https://nvidia.github.io/libnvidia-container/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[nvidia-container-runtime]
name=nvidia-container-runtime
baseurl=https://nvidia.github.io/nvidia-container-runtime/stable/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://nvidia.github.io/nvidia-container-runtime/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[nvidia-container-runtime-experimental]
name=nvidia-container-runtime-experimental
baseurl=https://nvidia.github.io/nvidia-container-runtime/experimental/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=0
gpgkey=https://nvidia.github.io/nvidia-container-runtime/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[nvidia-docker]
name=nvidia-docker
baseurl=https://nvidia.github.io/nvidia-docker/centos7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://nvidia.github.io/nvidia-docker/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt



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.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install -y nvidia-docker2
sudo systemctl restart docker

3. 配置 NVIDIA Docker

为了确保 Docker 容器可以正确访问 NVIDIA GPU,你需要添加 NVIDIA Docker 的运行时配置。编辑 /etc/docker/daemon.json 文件,添加或修改以下内容:

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


sudo systemctl restart docker

4. 验证安装

最后,验证 NVIDIA Docker 是否正确安装并配置:

复制代码
docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi

这个命令会运行一个包含 CUDA 的容器,并执行 nvidia-smi 命令,显示 NVIDIA 系统管理界面,确认 GPU 可见性。如果看到 GPU 信息,说明 NVIDIA Docker 安装成功。

5. (可选)使用 NVIDIA Container Toolkit

从 NVIDIA 官方推荐的最新实践中,建议使用 NVIDIA Container Toolkit 替代 NVIDIA Docker。你可以通过以下步骤安装:

复制代码
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.repo | sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo \
   && sudo yum install -y nvidia-container-toolkit \
   && sudo systemctl restart docker

然后再次验证:

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

这将运行一个 CUDA 11.0 容器,并使用 nvidia-smi 命令来检查 GPU。如果一切正常,你应该看到 GPU 的相关信息。

Docker 已经原生支持 NVIDIA GPU,无需使用 NVIDIA Docker 1.0 或 NVIDIA Docker 2.0 这样的旧工具。从 Docker 17.05 版本开始,Docker 社区版和 Docker 企业版都原生支持 NVIDIA GPU。这意味着你可以直接使用标准的 Docker 命令来运行基于 NVIDIA GPU 的容器,而无需安装额外的 NVIDIA Docker 插件。

要使用 Docker 与 NVIDIA GPU 集成,你需要做以下几步:

  1. 安装 NVIDIA 驱动:确保你的系统已经安装了适合你的 NVIDIA GPU 的最新 NVIDIA 驱动。

  2. 安装 Docker:确保你的系统上安装了 Docker。对于 Docker 的安装,你可以参考 Docker 的官方文档进行安装。

  3. 安装 NVIDIA Container Toolkit:这是连接 Docker 和 NVIDIA GPU 的桥梁。你可以通过以下命令安装 NVIDIA Container Toolkit:

    distribution=(. /etc/os-release;echo IDVERSION_ID | sed -e 's/\.//g' -e 's/amzn/amzn1/g') 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
    sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
    sudo systemctl restart docker

  4. 注意:从 Docker CE 版本 19.03 开始,NVIDIA Container Toolkit 已经内置在 Docker 中,因此你可能不需要单独安装它。只需确保你的 Docker 是最新版本即可。

  5. 运行 GPU 支持的 Docker 容器 :使用 --gpus 参数来指定容器可以访问的 GPU。例如:

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

    这个命令会启动一个可以访问所有 GPU 的容器。

验证 GPU 支持:在容器内部,你可以运行如 nvidia-smi 的命令来验证 GPU 是否被正确识别和使用。

确保你的 Docker 和 NVIDIA Container Toolkit 是最新版本,以获得最佳兼容性和性能。你可以通过运行 docker info 和 nvidia-smi 来检查 Docker 和 NVIDIA GPU 的状态。如果你使用的是较新版本的 Docker(如 20.10 或更高),可能不需要单独的 NVIDIA Container Toolkit,因为它已经被整合到 Docker 中了。在这种情况下,你只需要确保你的 Docker 使用的是支持 GPU 的版本即可。

相关推荐
AOwhisky10 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
念何架构之路15 小时前
Docker 容器状态机 学习
java·学习·docker
jieyucx15 小时前
Docker 入门第六阶段:综合实战项目
运维·docker·容器
不能只会打代码17 小时前
Day 002 — Python 工程化 & FastAPI & 数据库速通
数据库·redis·python·docker·fastapi·测试
海涛从不浪17 小时前
03 oect刷入Armbian后安装Onepanel并进行docker迁移
运维·docker·容器·onepanel
yanjieliyun20 小时前
家庭服务器从入门到精通 · 第 5 篇 · NPM反向代理从安装到起飞:一条命令搞定HTTPS
docker
天狼啸月199021 小时前
RagSEDE复现: Docker and Ragflow 关系
docker·容器·ragflow·ragsede
java_logo21 小时前
Docker 部署 SamWaf 完整教程:开源 Web 应用防火墙实测
docker·开源·防火墙·waf·samwaf·轩辕镜像·docker部署waf
C137的本贾尼21 小时前
第十篇:Docker & K8s——标准化应用的“集装箱“和“码头调度中心“
docker·容器·kubernetes