Ubuntu 服务器安装 Nvidia Container Toolkit 使 Docker 支持 Cuda
为了能够在 Docker 中使用 GPU 进行加速,Nvidia 开发了 nvidia-docker 对 Container 进行封装,使得 Docker 容器可以调用 GPU 进行加速。现在 nvidia-docker 已被归档,官方推荐使用 nvidia-container-toolkit。
本文将介绍如何在 Linux 中安装 nvidia-container-toolkit。
注:本文所使用的显卡为 RTX4080
安装 Nvidia 驱动
查看驱动版本
1
cat /proc/driver/nvidia/version
若提示没有该文件,则说明没有驱动。否则会显示驱动版本:
1
2NVRM version: NVIDIA UNIX x86_64 Kernel Module 535.129.03 Thu Oct 19 18:56:32 UTC 2023
GCC version: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)安装驱动
由于 4080 不支
--gpgpu
驱动,因此此处安装通用驱动查看可安装驱动:
1
sudo ubuntu-drivers list
使用推荐方式安装:
1
sudo ubuntu-drivers install
若显卡支持,可以添加
--gpgpu
参数即可安装工具包:
1
2
3
4
5查看驱动版本
cat /proc/driver/nvidia/version
若是 --gpgpu 版本,还需要根据驱动版本安装工具包,下面的 535 为主版本号
sudo apt install nvidia-utils-535-server
输入 nvidia-smi
来查看显卡状态,正常显示如下:
若要卸载驱动,执行:
1 | sudo apt --purge remove '*nvidia*${DRIVER_BRANCH}*' |
安装 NVIDIA Container Toolkit
宿主机更新 NVIDIA driver
1
2
3
4curl -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.github.io 上下载文件,可能需要配置代理
更新包列表
1
sudo apt-get update
安装 NVIDIA Container Toolkit
1
sudo apt-get install -y nvidia-container-toolkit
配置 Docker
通过
navidia-ctk
配置 docker 容器1
sudo nvidia-ctk runtime configure --runtime=docker
重启容器
1
sudo systemctl restart docker
配置 Containerd
containerd
是一个开源的容器运行时,它是 Docker
的一个核心组件,负责管理容器的生命周期,包括镜像管理、容器执行、进程监控、网络管理等。
1 | sudo nvidia-ctk runtime configure --runtime=containerd |
测试
使用下列代码测试是否可以在 docker 容器中使用 gpu
1 | sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi |
--gpus all:表示在 docker 中使用 GPU,若容器需要使用 GPU,都需要添加这个参数
当输出如下内容时,说明安装成功了
1 | +---------------------------------------------------------------------------------------+ |
docker compose 配置 GPU
在配置中加入如下设置,允许 docker 使用 gpu
1 | services: |
测试 Docker 容器 GPU 状态
进入到容器后,执行 nvidia-smi
,若成功显示 GPU
信息,则说明 docker 容器成功访问到了 GPU。
参考
本文参考以下文章,在此致以诚挚谢意!
NVIDIA drivers installation | Ubuntu
NVIDIA/nvidia-docker: Build and run Docker containers leveraging NVIDIA GPUs (github.com)
NVIDIA/nvidia-container-toolkit: Build and run containers leveraging NVIDIA GPUs (github.com)
Installing the NVIDIA Container Toolkit — NVIDIA Container Toolkit 1.14.3 documentation
Running a Sample Workload — NVIDIA Container Toolkit 1.14.3 documentation