NVIDIA Container Toolkit 安装与配置帮助文档(Ubuntu,Docker)
本文档详细介绍了在 Ubuntu Server 22.04 上使用 Docker 安装和配置 NVIDIA Container Toolkit 的过程。
概述
NVIDIA 容器工具包使用户能够构建和运行 GPU 加速容器。即可以在容器中使用NVIDIA显卡。
架构图如下:
目录
- 前提条件
- 安装 NVIDIA Container Toolkit
- 配置 Docker 以使用 NVIDIA 容器运行时
- 验证配置
前提条件
- 安装了容器引擎(Docker)。
- 安装了 NVIDIA Container Toolkit。
安装 NVIDIA Container Toolkit
- 配置生产存储库:
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
作用:从 NVIDIA 官方网站下载 GPG 密钥并将其转换为适合 APT 使用的格式,然后下载 NVIDIA 容器工具包的 APT 源列表,并将其配置为使用之前下载的 GPG 密钥进行签名验证。
- (可选)配置存储库以使用实验性软件包:
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
作用:启用实验性软件包源。这条命令将源列表文件中关于实验性软件包的行前面的注释符号(#)去掉,从而启用该源。
- 从存储库更新软件包列表:
sudo apt-get update
作用:更新 APT 包管理器的包列表,使其包含新添加的 NVIDIA 容器工具包源中的软件包。
- 安装 NVIDIA Container Toolkit 软件包:
sudo apt-get install -y nvidia-container-toolkit
作用:安装 NVIDIA 容器工具包。
配置 Docker 以使用 NVIDIA 容器运行时
- 配置容器运行时:
sudo nvidia-ctk runtime configure --runtime=docker
作用:使用 nvidia-ctk
命令配置 Docker 以使用 NVIDIA 容器运行时。这条命令会修改 /etc/docker/daemon.json
文件。
- 执行命令后的返回结果:
WARN[0000] Ignoring runtime-config-override flag for docker
INFO[0000] Config file does not exist; using empty config
INFO[0000] Wrote updated config to $HOME/.config/docker/daemon.json
INFO[0000] It is recommended that docker daemon be restarted.
解释:
- WARN[0000] Ignoring runtime-config-override flag for docker
:忽略 runtime-config-override
标志。
- INFO[0000] Config file does not exist; using empty config
:配置文件不存在,使用空配置。
- INFO[0000] Wrote updated config to $HOME/.config/docker/daemon.json
:已将更新后的配置写入到指定文件。
- INFO[0000] It is recommended that docker daemon be restarted
:建议重启 Docker 守护进程。
- 重新启动 Docker 守护进程:
sudo systemctl restart docker
作用:重新启动 Docker 守护进程,以使配置更改生效。
验证配置
运行以下命令以验证 Docker 是否正确配置 NVIDIA 容器运行时:
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
输出:
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
d19f32bd9e41: Pull complete
Digest: sha256:34fea4f31bf187bc915536831fd0afc9d214755bf700b5cdb1336c82516d154e
Status: Downloaded newer image for ubuntu:latest
Thu Jul 18 13:40:28 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3090 Off | XXXXXXXX:XX:XX.X Off | N/A |
| 34% 25C P8 19W / 350W | 1MiB / 24576MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
| 1 NVIDIA GeForce RTX 3090 Off | XXXXXXXX:XX:XX.X Off | N/A |
| 32% 25C P8 7W / 350W | 1MiB / 24576MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
图示说明:该输出结果显示了 GPU 的详细信息,包括型号、温度、功率使用情况和内存使用情况等。这表明 Docker 容器成功地访问到了 NVIDIA GPU,并且 NVIDIA Container Toolkit 安装和配置成功。
通过以上步骤,你可以成功安装和配置 NVIDIA Container Toolkit,并能够在 Docker 容器中运行 GPU 加速的应用程序。如果在执行过程中遇到任何问题,请随时联系以获得进一步帮助。