如何在 Ubuntu 22.04 LTS 上的 Docker 容器中使用 NVIDIA GPU
您可以在 Docker 容器中传递 NVIDIA GPU,并从这些 Docker 容器在 NVIDIA GPU 上运行 CUDA 程序。这对于学习AI(人工智能)来说是非常有用的功能。能够在 Docker 容器上运行 AI 代码(即 Tensorflow)将为您节省大量时间。您还可以在不同的 CUDA 版本上尝试您的 AI 代码,而无需更改计算机上的 CUDA 版本。
摆弄计算机上的 NVIDIA 驱动程序和 CUDA 版本可能会导致 NVIDIA 驱动程序无法工作或导致黑/蓝屏死机等问题。因此,保持系统原样并在隔离环境(如 Docker 容器)中进行更改始终是一个好主意。这可以保持您的主计算机干净(不必要的开发工具)。
在本文中,我将向您展示如何在 Ubuntu 22.04 LTS 上设置 Docker CE 和 NVIDIA docker,以便您可以从 Docker 容器访问计算机的 NVIDIA GPU 并在 NVIDIA GPU 上运行 CUDA 程序。
目录:
检查 Ubuntu 22.04 上是否安装了官方 NVIDIA GPU 驱动程序 LTS
在 Ubuntu 22.04 上安装 Docker CE 依赖项 LTS
在 Ubuntu 22.04 上安装 Docker CE GPG 密钥 LTS
在 Ubuntu 22.04 上安装 Docker CE 存储库 LTS
在 Ubuntu 22.04 上安装 Docker CE LTS
将 Ubuntu 22.04 LTS 登录用户添加到 docker 组
检查 Docker CE 是否在 Ubuntu 22.04 上正确安装 LTS
在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit GPG 密钥 LTS
在 Ubuntu 22.04 上安装 NVIDIA 容器工具包存储库 LTS
在 Ubuntu 22.04 上安装 nvidia-docker 驱动程序 LTS
检查 Ubuntu 22.04 中的 Docker 容器是否可以访问 NVIDIA GPU LTS
结论
参考
检查 Ubuntu 22.04 LTS 上是否安装了官方 NVIDIA GPU 驱动程序:
在开始之前,请运行以下命令来验证您的计算机上是否安装了 NVIDIA GPU。
在本例中,我的计算机上安装了 NVIDIA GTX 1050 Ti GPU。您的计算机上很可能安装了不同的 NVIDIA GPU。
另外,请使用以下命令确保您的 Ubuntu 22.04 操作系统上安装了官方 NVIDIA 驱动程序:
如果您的 Ubuntu 22.04 操作系统上安装了官方 NVIDIA 驱动程序,您将看到以下输出。
另外,请使用以下命令检查官方 NVIDIA GPU 驱动程序是否正常工作:
如果官方 NVIDIA GPU 驱动程序正在运行,您将看到以下输出。如您所见,我在 Ubuntu 22.04 计算机上安装了官方 NVIDIA GPU 驱动程序版本 525.78.01。
如果您的 Ubuntu 22.04 计算机上没有安装官方 NVIDIA GPU 驱动程序并且需要任何帮助,请查看文章如何在 Ubuntu 22.04 LTS 上安装 NVIDIA 驱动程序。
在 Ubuntu 22.04 LTS 上安装 Docker CE 依赖项:
在 Ubuntu 22.04 上安装 Docker CE 之前,您需要在 Ubuntu 22.04 上安装所需的 Docker CE 依赖包。
首先,使用以下命令更新 APT 软件包存储库缓存:
应更新 APT 包存储库缓存。
安装Docker CE所需的依赖包,执行以下命令:
要确认安装,请按Y,然后按
应安装所需的 Docker CE 依赖包。
在 Ubuntu 22.04 LTS 上安装 Docker CE GPG 密钥:
在本节中,我将向您展示如何在 Ubuntu 22.04 上安装 Docker CE 软件包存储库的 GPG 密钥。
首先,使用以下命令创建一个新文件夹 /etc/apt/keyrings:
要在 Ubuntu 22.04 上安装 Docker CE 软件包存储库的 GPG 密钥,请运行以下命令:
在 Ubuntu 22.04 LTS 上安装 Docker CE 存储库:
要在 Ubuntu 22.04 上安装 Docker CE 软件包存储库,请运行以下命令:
更新 APT 包存储库缓存以使更改生效。
在 Ubuntu 22.04 LTS 上安装 Docker CE:
要在 Ubuntu 22.04 上安装最新版本的 Docker CE,请运行以下命令:
要确认安装,请按Y,然后按
正在下载Docker CE以及所需的依赖包。需要一段时间才能完成。
正在安装Docker CE以及所需的依赖包。需要一段时间才能完成。
此时应该安装 Docker CE 和所需的依赖包。
将 Ubuntu 22.04 LTS 登录用户添加到 docker 组:
要创建 Docker 容器并在不使用 sudo 或以 root 用户身份登录的情况下管理它们,您必须将登录用户添加到 docker 组。
要将 Ubuntu 22.04 的登录用户添加到 docker 组,请运行以下命令:
为了使更改生效,请使用以下命令重新启动计算机:
检查 Docker CE 是否在 Ubuntu 22.04 LTS 上正确安装:
计算机启动后,运行以下命令以验证您是否可以在没有超级用户权限的情况下访问 Docker。
如果一切正常,您应该看到以下输出。
如您所见,我运行的是 Docker 版本 20.10.23——撰写本文时 Docker CE 的最新版本。
在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit GPG 密钥:
在本节中,我将向您展示如何在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit 软件包存储库的 GPG 密钥。
要在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit 软件包存储库的 GPG 密钥,请运行以下命令:
在 Ubuntu 22.04 LTS 上安装 NVIDIA Container Toolkit 存储库:
在本节中,我将向您展示如何在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit 软件包存储库。
首先,在 /etc/apt/sources.list.d/ 目录中创建一个新的 APT 源文件 nvidia-container-toolkit.list,如下所示:
在 nvidia-container-toolkit.list 文件中,添加以下行并按
注意:如果您使用的是 Ubuntu 20.04 LTS,那么您所需要做的就是在 nvidia-container-toolkit.list 中添加以下行 改为文件,其他一切都应该保持不变。
注意:如果您使用的是 Ubuntu 18.04 LTS,那么您所需要做的就是在 nvidia-container-toolkit.list 中添加以下行 改为文件,其他一切都应该保持不变。
要使更改生效,请使用以下命令更新 APT 软件包存储库缓存:
在 Ubuntu 22.04 LTS 上安装 nvidia-docker 驱动程序:
要在 Ubuntu 22.04 上安装 NVIDIA Docker 驱动程序,请运行以下命令:
要确认安装,请按Y,然后按
应安装 NVIDIA docker 驱动程序。
为了使更改生效,请使用以下命令重新启动计算机:
检查 Ubuntu 22.04 LTS 中的 Docker 容器是否可以访问 NVIDIA GPU:
在本节中,我将向您展示如何创建 NVIDIA CUDA Docker 容器并验证该容器是否可以从您的计算机访问 NVIDIA GPU。
要创建基于 Ubuntu 20.04 LTS 的 NVIDIA CUDA 12 Docker 容器并在创建后在其中运行 nvidia-smi 命令以验证它是否可以从您的计算机访问 NVIDIA GPU,请运行以下命令:
Docker 正在从 Docker Hub 中提取 nvidia/cuda:12.0.0-base-ubuntu20.04 映像。需要一段时间才能完成。
提取 NVIDIA CUDA docker 映像并创建容器后,nvidia-smi 命令将在其上运行并在控制台上打印输出,如下面的屏幕截图所示。
Docker 容器使用 NVIDIA GPU 驱动程序 525.78.01[1] 和 CUDA 版本 12.0[2] >。如果您看到类似的输出,则 Docker 容器可以访问您计算机的 NVIDIA GPU。
如果您需要使用旧版本的 CUDA,请检查 Docker Hub 上的 nvidia/cuda 映像。
结论:
在本文中,我向您展示了如何在 Ubuntu 22.04 上设置 Docker CE 软件包存储库。我还向您展示了如何在 Ubuntu 22.04 上安装最新版本的 Docker CE。我向您展示了如何在 Ubuntu 22.04 上安装 NVIDIA Container Toolkit 软件包存储库以及如何在 Ubuntu 22.04 上安装 NVIDIA Docker 驱动程序。最后,我向您展示了如何从 Docker 容器访问计算机的 NVIDIA GPU。
参考:
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html
https://hub.docker.com/r/nvidia/cuda/tags