docker 支持GPU 问题 安装 NVIDIA Docker

发布于:2025-04-17 ⋅ 阅读:(27) ⋅ 点赞:(0)

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 $ID$VERSION_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
  1. 注意:从 Docker CE 版本 19.03 开始,NVIDIA Container Toolkit 已经内置在 Docker 中,因此你可能不需要单独安装它。只需确保你的 Docker 是最新版本即可。

  2. 运行 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 的版本即可。


网站公告

今日签到

点亮在社区的每一天
去签到