Docker离线安装Nvidia-container-toolkit实现容器内GPU调用

这篇具有很好参考价值的文章主要介绍了Docker离线安装Nvidia-container-toolkit实现容器内GPU调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

需求:实验室内通过Docker搭建隔离环境保证各用户数据安全和服务器环境安全,防止软件环境混杂造成莫名其妙的bug,容器内需要能够调用显卡资源。

预先准备

本文的内容基于以下软件版本:
Docker:Docker version 20.10.17, build 100c701
CUDA:NVIDIA-SMI 510.68.02 Driver Version: 510.68.02 CUDA Version: 11.6
系统:Ubuntu 20.04.4 LTS

Nvidia-container-toolkit架构

Nvidia官网架构概述,可以用Chrome自带网页翻译仔细阅读,本文仅简单介绍。

架构

The NVIDIA container stack is architected so that it can be targeted to support any container runtime in the ecosystem.
The components of the stack include:
	The nvidia-docker wrapper
	The NVIDIA Container Runtime (nvidia-container-runtime)
	The NVIDIA Container Runtime Hook (nvidia-container-toolkit / nvidia-container-runtime-hook)
	The NVIDIA Container Library and CLI (libnvidia-container1, nvidia-container-cli)
...
Note that as of version 3.6.0, the nvidia-container-runtime package is a meta package that 
only depends on the nvidia-container-toolkit package and does not provide any functionality of itself.

NVIDIA container主要组件包括nvidia-container-runtime, nvidia-container-toolkit, libnvidia-containerCUDA驱动;
在3.6.0版本后,runtime包成为一个只依赖于toolkit包(指container-toolkit而不是nvidia CUDA toolkit)的包,在官网中也指出,对于一般的应用而言,nvidia-container-toolkit能够满足绝大多数需求。
nvidia-container-toolkit,docker,容器,运维,服务器,ubuntu
架构结构如图所示。

依赖关系

本文使用的Docker版本较高,已经不需要再独立安装nvidia-docker,只需要配置好上述环境即可。
本文需要配置的软件包为:

nvidia-container-toolkit
libnvidia-container-tools
libnvidia-container1

不需要安装nvidia-container-runtime
依赖如下,摘自官网。

├─ nvidia-container-toolkit (version)
│    └─ libnvidia-container-tools (>= version)
│
├─ libnvidia-container-tools (version)
│    └─ libnvidia-container1 (>= version)
└─ libnvidia-container1 (version)

离线安装

安装顺序

按照上文依赖关系,安装顺序为

libnvidia-container1 -> libnvidia-container-tools -> nvidia-container-toolkit

软件下载

本文与网上大部分方法不同,基于离线方式安装。
官网提供GitHub链接:
旧版的nvidia-container-toolkit(不需要,如有需要安装旧版本可以看该链接)
https://github.com/NVIDIA/nvidia-container-runtime/tree/gh-pages/`

libnvidia-container1本文环境下只安装这个即可
https://github.com/NVIDIA/libnvidia-container/tree/gh-pages/

根据镜像的系统版本查找:
Ubuntu 20.04 点进去是一个符号链接,链接到仓库的stable/ubuntu20.04,再点stable/ubuntu20.04又是一个链接到stable/ubuntu18.04的符号链接,根据架构选择amd64(x86_64同)。

分别下载:

libnvidia-container1_1.9.0-1_amd64.deb						# Add packages for NVIDIA Container Toolkit v1.9.0 release
libnvidia-container-tools_1.9.0-1_amd64.deb					# Add packages for NVIDIA Container Toolkit v1.9.0 release
nvidia-container-toolkit_1.9.0-1_amd64.deb					# Add packages for NVIDIA Container Toolkit v1.9.0 release

下载完后上传到服务器。

安装

  1. cd到目录下,使用dpkg安装:
    $ sudo dpkg -i ./libnvidia-container1_1.9.0-1_amd64.deb
    $ sudo dpkg -i ./libnvidia-container-tools_1.9.0-1_amd64.deb
    $ sudo dpkg -i ./nvidia-container-toolkit_1.9.0-1_amd64.deb

  2. 可能存在报错:
    /sbin/ldconfig.real: /usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 is not a symbolic link等几条信息。
    解决方式:
    创建符号链接使xxx.so.8指向xxx.so注意需要写绝对路径
    $ ln -sf /usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_cnn_infer.so /usr/local/cuda-11.6/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8,前一个参数指实际存储的目标文件,后一个参数是so.8文件。

测试

  1. 运行容器:
    $ docker run -it -v /home/your_user_name/docker_workdir/:/home/in_docker_user/ --gpus all -p 21203:22 docker_repo/ubuntu:lab_base_env
    其中-p 21203:22指定了宿主机21203端口映射到容器的22端口,可以通过ssh in_docker_user@xxx.xxx.xxx.xxx -p 21203实现外部远程访问容器。

  2. 运行nvidia-smi,正常显示显卡信息文章来源地址https://www.toymoban.com/news/detail-797120.html

Tue Oct 25 11:34:21 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.68.02    Driver Version: 510.68.02    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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 ...  Off  | 00000000:73:00.0 Off |                  N/A |
| 32%   42C    P0   104W / 350W |      0MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  Off  | 00000000:D5:00.0 Off |                  N/A |
| 34%   60C    P0   120W / 350W |      0MiB / 24576MiB |      3%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

到了这里,关于Docker离线安装Nvidia-container-toolkit实现容器内GPU调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu安装Nvidia Container Toolkit

    NVIDIA Container Toolkit 可用于各种 Linux 发行版并支持不同的容器引擎。在开始之前,请确保您已经为您的 Linux 发行版安装了 NVIDIA 驱动程序。安装驱动程序的推荐方法是使用分发包管理器,但也可以使用其他安装程序机制(例如,通过.run从 NVIDIA Driver Downloads下载安装程序) Nv

    2024年02月14日
    浏览(39)
  • 【Ubuntu】为Docker安装NVIDIA运行时环境(NVIDIA Container Runtime for Docker)

    在Ubuntu系统上,为Docker安装NVIDIA运行时环境(NVIDIA Container Runtime for Docker)通常涉及以下步骤: 安装Docker (如果您还没有安装): 首先,确保您的系统已经安装了Docker。您可以使用以下命令进行安装: 添加NVIDIA容器运行时的存储库 : 执行以下命令以添加NVIDIA的Apt存储库:

    2024年01月24日
    浏览(44)
  • Ubuntu安装NVIDIA-Docker详细教程(离线&&在线)

    B站|公众号:啥都会一点的研究生 虽然在前一贴详细说了安装步骤,Ubuntu安装、卸载Docker,常用镜像、容器操作命令,但还是将其总结写在此处 https://github.com/NVIDIA/nvidia-docker/ 需要代理才能安装。 首先确认已经安装好nvidia的驱动,可以用 nvidia-smi 命令查看 已将离线文件打包

    2024年02月05日
    浏览(52)
  • 『CV学习笔记』docker和nvidia-docker离线安装

    docker和nvidia-docker离线安装 这里是ubuntu操作系统, 如果是其他的操作系统,则需要安装对应的deb包

    2024年02月13日
    浏览(33)
  • 安装docker nvidia toolkit时报错E: Conflicting values set for option Signed-By

    在运行sudo apt-get这一步时,报错: E: Conflicting values set for option Signed-By regarding source https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64/ /: /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg != E: The list of sources could not be read. 上网查了很多博客没能解决问题,后来在nvidia docker的官方

    2024年02月13日
    浏览(36)
  • 离线安装docker及nvidia-docker最简单有效的方法

    一台能联网的机器 需要安装的离线服务器 从Index of linux/static/stable/下载docker执行文件 从https://github.com/Jrohy/docker-install/下载离线安装脚本 根据https://github.com/Jrohy/docker-install/的说明完成离线安装 方法参考自Ubuntu离线安装NVIDIA Docker - 知乎的安装流程,修改流程如下: 从libnvid

    2024年02月13日
    浏览(39)
  • Docker:使用Nvidia官方的pytorch、tensorflow、TensorRT镜像创建Container容器

    文章目录 前言 一、前期准备 二、具体步骤 1.启动容器 2.使用容器 补充 相信大家在学习新的知识前都遇到过开发环境安装不上,或者环境冲突和版本不匹配的情况,另外当我们想要安装多个版本的支持库时,在本地环境上直接安装往往会导致版本冲突的情况,如果我们使用

    2024年02月19日
    浏览(43)
  • Ubuntu下 NVIDIA Container Runtime 安装与使用

    NVIDIA Container Runtime官网 GitHub仓库:Docker 是开发人员采用最广泛的容器技术。借助 NVIDIA Container Runtime,开发人员只需在创建容器期间注册一个新的运行时,即可将 NVIDIA GPU 暴露给容器中的应用程序。用于 Docker 的 NVIDIA Container Runtime 是托管在GitHub 上的开源项目。 NVIDIA Containe

    2024年02月01日
    浏览(35)
  • 笔记--Ubuntu20.04安装Nvidia驱动、CUDA Toolkit和CUDA CuDNN

    目录 1--安装Nvidia驱动 2--安装CUDA 2-1--禁用nouveau 2-2--选择CUDA Toolkit 2-3--下载和安装CUDA Toolkit 2-4--配置环境变量 2-5--测试是否安装成功: 3--安装CUDA CuDNN 4--测试pytorch能否使用Cuda ① 查看可安装的Nvidia驱动版本: ② 安装相应版本的Nvidia驱动: 博主这里选择的是第一个,也可以安

    2024年02月02日
    浏览(61)
  • 在Windows 10(Win10)下安装“NVIDIA图形驱动程序-显卡驱动”、“NVIDIA控制面板”、CUDA Toolkit、cuDNN Archive的详细过程记录

    目标:安装CUDA Toolkit和cuDNN Archive 安装CUDA Toolkit首先要知道自己的CUDA版本号,通过控制面板打开“NVIDIA 控制面板”查看自己的CUDA版本。 按照别人的经验应该有下图中的“NVIDIA 控制面板”, 但是我的没有,如下图所示: 原因是没有完整安装NVIDIA的显卡驱动。下载一个驱动精

    2024年02月03日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包