写在前面
自己的测试环境:Ubuntu20.04。
由于docker的容器内部需要调用CUDA,因此需要在本机(宿主机)安装 NVIDIA Container Toolkit
接下来的安装方法全部来自官方网站,如果遇到问题可以参考下官方网站。
一、安装
NVIDIA Container Toolkit 使用户能够构建和运行 GPU 加速的容器。该工具包包括一个容器运行时库和实用程序,用于自动配置容器以利用 NVIDIA GPU。
- 配置 repository
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
(可选)配置存储库以使用实验包:
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
- 从存储库更新包列表:
sudo apt-get update
- 安装 NVIDIA Container Toolkit 软件包:
sudo apt-get install -y nvidia-container-toolkit
二、配置 docker
- 使用 nvidia-ctk 命令配置容器运行时:
sudo nvidia-ctk runtime configure --runtime=docker
nvidia-ctk 命令修改主机上的 /etc/docker/daemon.json
文件。该文件已更新,以便 Docker 可以使用 NVIDIA 容器运行时。
笔者增加:
执行完这个指令,/etc/docker/daemon.json
中会增加如下语句:
"runtimes": {
"nvidia": {
"args": [],
"path": "nvidia-container-runtime"
}
}
- 重新启动 Docker 守护进程:
sudo systemctl restart docker
三、配置 docker 的无根模式 (笔者认为,这步可选)
(可选)Rootless mode (无根模式)
要为在 Rootless 模式下运行的 Docker 配置容器运行时,请按照以下步骤操作:
- 使用
nvidia-ctk
命令配置容器运行时:
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
- 重新启动 Rootless Docker daemon:
systemctl --user restart docker
- 使用
sudo nvidia-ctk
命令配置/etc/nvidia-container-runtime/config.toml
:
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
参考链接
[1] nvidia. Installing the NVIDIA Container Toolkit [EB/OL]. https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html, xxxx-xx-xx/2024-10-12.