写在前面

自己的测试环境:Ubuntu20.04。
由于docker的容器内部需要调用CUDA,因此需要在本机(宿主机)安装 NVIDIA Container Toolkit
接下来的安装方法全部来自官方网站,如果遇到问题可以参考下官方网站

一、安装

NVIDIA Container Toolkit 使用户能够构建和运行 GPU 加速的容器。该工具包包括一个容器运行时库和实用程序,用于自动配置容器以利用 NVIDIA GPU。

  1. 配置 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
  1. 从存储库更新包列表:
sudo apt-get update
  1. 安装 NVIDIA Container Toolkit 软件包:
sudo apt-get install -y nvidia-container-toolkit

二、配置 docker

  1. 使用 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"
        }
    }
  1. 重新启动 Docker 守护进程:
sudo systemctl restart docker

三、配置 docker 的无根模式 (笔者认为,这步可选)

(可选)Rootless mode (无根模式)

要为在 Rootless 模式下运行的 Docker 配置容器运行时,请按照以下步骤操作:

  1. 使用 nvidia-ctk 命令配置容器运行时:
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
  1. 重新启动 Rootless Docker daemon:
systemctl --user restart docker
  1. 使用 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.

Logo

一站式 AI 云服务平台

更多推荐