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 集成,你需要做以下几步:
安装 NVIDIA 驱动:确保你的系统已经安装了适合你的 NVIDIA GPU 的最新 NVIDIA 驱动。
安装 Docker:确保你的系统上安装了 Docker。对于 Docker 的安装,你可以参考 Docker 的官方文档进行安装。
安装 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
注意:从 Docker CE 版本 19.03 开始,NVIDIA Container Toolkit 已经内置在 Docker 中,因此你可能不需要单独安装它。只需确保你的 Docker 是最新版本即可。
运行 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 的版本即可。