NVIDIA Container Toolkit 安装与配置帮助文档(Ubuntu,Docker)

news2024/9/22 5:43:12

NVIDIA Container Toolkit 安装与配置帮助文档(Ubuntu,Docker)

本文档详细介绍了在 Ubuntu Server 22.04 上使用 Docker 安装和配置 NVIDIA Container Toolkit 的过程。

概述

NVIDIA 容器工具包使用户能够构建和运行 GPU 加速容器。即可以在容器中使用NVIDIA显卡。
架构图如下:
在这里插入图片描述


目录

  1. 前提条件
  2. 安装 NVIDIA Container Toolkit
  3. 配置 Docker 以使用 NVIDIA 容器运行时
  4. 验证配置

前提条件

  1. 安装了容器引擎(Docker)。
  2. 安装了 NVIDIA Container Toolkit。

安装 NVIDIA Container Toolkit

  1. 配置生产存储库:
    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

作用:从 NVIDIA 官方网站下载 GPG 密钥并将其转换为适合 APT 使用的格式,然后下载 NVIDIA 容器工具包的 APT 源列表,并将其配置为使用之前下载的 GPG 密钥进行签名验证。

  1. (可选)配置存储库以使用实验性软件包:
    sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

作用:启用实验性软件包源。这条命令将源列表文件中关于实验性软件包的行前面的注释符号(#)去掉,从而启用该源。

  1. 从存储库更新软件包列表:
    sudo apt-get update

作用:更新 APT 包管理器的包列表,使其包含新添加的 NVIDIA 容器工具包源中的软件包。

  1. 安装 NVIDIA Container Toolkit 软件包:
    sudo apt-get install -y nvidia-container-toolkit

作用:安装 NVIDIA 容器工具包。

配置 Docker 以使用 NVIDIA 容器运行时

  1. 配置容器运行时:
    sudo nvidia-ctk runtime configure --runtime=docker

作用:使用 nvidia-ctk 命令配置 Docker 以使用 NVIDIA 容器运行时。这条命令会修改 /etc/docker/daemon.json 文件。

  • 执行命令后的返回结果:
      WARN[0000] Ignoring runtime-config-override flag for docker 
      INFO[0000] Config file does not exist; using empty config 
      INFO[0000] Wrote updated config to $HOME/.config/docker/daemon.json 
      INFO[0000] It is recommended that docker daemon be restarted.

解释
- WARN[0000] Ignoring runtime-config-override flag for docker:忽略 runtime-config-override 标志。
- INFO[0000] Config file does not exist; using empty config:配置文件不存在,使用空配置。
- INFO[0000] Wrote updated config to $HOME/.config/docker/daemon.json:已将更新后的配置写入到指定文件。
- INFO[0000] It is recommended that docker daemon be restarted:建议重启 Docker 守护进程。

  1. 重新启动 Docker 守护进程:
    sudo systemctl restart docker

作用:重新启动 Docker 守护进程,以使配置更改生效。

验证配置

运行以下命令以验证 Docker 是否正确配置 NVIDIA 容器运行时:

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

输出

Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
d19f32bd9e41: Pull complete 
Digest: sha256:34fea4f31bf187bc915536831fd0afc9d214755bf700b5cdb1336c82516d154e
Status: Downloaded newer image for ubuntu:latest
Thu Jul 18 13:40:28 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.183.01             Driver Version: 535.183.01   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| 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 RTX 3090        Off | XXXXXXXX:XX:XX.X Off |                  N/A |
| 34%   25C    P8              19W / 350W |      1MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce RTX 3090        Off | XXXXXXXX:XX:XX.X Off |                  N/A |
| 32%   25C    P8               7W / 350W |      1MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

图示说明:该输出结果显示了 GPU 的详细信息,包括型号、温度、功率使用情况和内存使用情况等。这表明 Docker 容器成功地访问到了 NVIDIA GPU,并且 NVIDIA Container Toolkit 安装和配置成功。


通过以上步骤,你可以成功安装和配置 NVIDIA Container Toolkit,并能够在 Docker 容器中运行 GPU 加速的应用程序。如果在执行过程中遇到任何问题,请随时联系以获得进一步帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1934560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 推出 Redis 分支 Valkey

Valkey——一个开源高性能键值存储 Redis 公司宣布更改开源许可之后,社区里出现了多个 Redis 分支,如 Redict、Valkey 等 2024 年 3 月 21 日,Redis 背后企业 Redis 的 CEO Rowan Trollope 宣布,该项目的许可证类型将从原本的 BS…

剧本杀小程序搭建,为商家带来新的收益方向

近几年,剧本杀游戏成为了游戏市场的一匹黑马,受到了不少年轻玩家的欢迎。随着信息技术的快速发展,传统的剧本杀门店已经无法满足游戏玩家日益增长的需求,因此,剧本杀市场开始向线上模式发展,实现行业数字化…

在RK3568上如何烧录MAC?

这里我们用RKDevInfoWriteTool 1.1.4版本 下载地址:https://pan.baidu.com/s/1Y5uNhkyn7D_CjdT98GrlWA?pwdhm30 提 取 码:hm30 烧录过程: 1. 解压RKDevInfoWriteTool_Setup_V1.4_210527.7z 进入解压目录,双击运行RKDevInfo…

使用 XPath 定位 HTML 中的 img 标签

引言 随着互联网内容的日益丰富,网页数据的自动化处理变得愈发重要。图片作为网页中的重要组成部分,其获取和处理在许多应用场景中都显得至关重要。例如,在社交媒体分析、内容聚合平台、数据抓取工具等领域,图片的自动下载和处理…

VScode通过Graphviz插件和dot文件绘制层次图,导出svg

1、安装插件 在VScode中安装Graphviz Interactive Preview插件,参考。 2、创建dot文件 在本地创建一个后缀为dot的文件,如test.dot,并写入以下内容: digraph testGraph {label "层次图";node [shape square; widt…

iOS ------ 编译链接

编译流程分析 编译可以分为四步: 预处理(Prepressing)编译(Compilation)汇编 (Assembly)链接(Linking) 预编译(Prepressing) 过程是源文件main.c和相关头文件被&#…

vue v-for展示元素分两栏 中间使用分割线

1.效果展示: 2.代码展示: <template><div class"container"><div class"column" v-for"(item, index) in items" :key"index"><div class"item">{{ item }}</div><div v-if"index %…

在 K8s 上使用 KubeBlocks 提供的 MySQL operator 部署高可用 WordPress 站点

引言 WordPress WordPress 是全球最流行的内容管理系统&#xff08;CMS&#xff09;&#xff0c;自 2003 年发布以来&#xff0c;已成为网站建设的首选工具。其广泛的插件和主题生态系统使用户能够轻松扩展功能和美化外观。活跃的社区提供丰富的资源和支持&#xff0c;进一步…

npm install时卡在sill idealTree buildDeps卡着不动

场景&#xff1a;做导出功能的时候要用上xlsx&#xff0c;正常npm install xlsx --save 问题描述&#xff1a;npm install时卡在sill idealTree buildDeps&#xff0c;&#xff0c;卡着不动 过程&#xff1a;在网上一顿百度试过好多种方法 1、切换taobao的镜像地址 npm conf…

Flink History Server配置

目录 问题复现 History Server配置 HADOOP_CLASSPATH配置 History Server配置 问题修复 启动flink集群 启动Histroty Server 问题复现 在bigdata111上执行如下命令开启socket&#xff1a; nc -lk 9999 如图&#xff1a; 在bigdata111上执行如下命令运行flink应用程序 …

神经网络之多层感知机

目录 一、全连接层&#xff1a;二、单层感知机概念&#xff1a;三、多层感知机概念&#xff1a; 一、全连接层&#xff1a; 在神经网络中&#xff0c;全连接层就是每个神经元都与上一层的所有神经元相连接&#xff0c;即每个神经元都接收上一层所有神经元的输入&#xff0c;并…

Java后端开发(十四)-- Win10安装多版本JDK并随时切换

目录 1. 多版本JDK并随时切换的解决办法 2. jdk17切回jdk8时一直失败的解决办法 3. 测试jdk版本 我目前使用的是window10的操作系统,在环境变量中关于jdk的配置如下: 1. 多版本JDK并随时切换的解决办法 最后一步就是切换 JAVA_HOME 的环境变量的值,就能随意切换jdk的版本…

Amisco供应汽车线圈与Husco是一家私营公司高性能液压和机电部件在汽车和非公路应用的组件设计和制造方面拥有超过 75 年的经验10于年的合作

Amisco和Husco在汽车线圈和高性能液压和机电部件的设计和制造方面合作已经超过10年。 Amisco是一家供应汽车线圈的公司&#xff0c;而Husco则专注于高性能液压和机电部件的设计和制造。 这两家公司在汽车和非公路应用领域拥有超过75年的经验。通过合作&#xff0c;Amisco和Husc…

Go语言并发编程-Goroutine调度

goroutine 概念 在Go中&#xff0c;每个并发执行的单元称为goroutine。通常称为Go协程。 go 关键字启动goroutine go中使用关键字 go 即可启动新的goroutine。 示例代码&#xff1a; 两个函数分别输出奇数和偶数。采用常规调用顺序执行&#xff0c;和采用go并发调用&…

elementUI在手机端使用遇到的问题总结

之前的博客有写过用vue2elementUI封装手机端选择器picker组件&#xff0c;支持单选、多选、远程搜索多选&#xff0c;最终真机调试的时候发现有很多细节样式需要调整。此篇博客记录下我调试过程中遇到的问题和解决方法。 一、手机真机怎么连电脑本地代码调试&#xff1f; 1.确…

2-38 基于matlab的蚁群算法优化无人机uav巡检

基于matlab的蚁群算法优化无人机uav巡检&#xff0c;巡检位置坐标可根据需求设置&#xff0c;从基地出发&#xff0c;返回基地&#xff0c;使得路径最小。可设置蚁群数量&#xff0c;信息素系数。输出最佳路线长度。程序已调通&#xff0c;可直接运行。 2-38 蚁群算法优化无人…

C学习(数据结构)-->单链表习题

目录 一、环形链表 题一&#xff1a;环形链表 思路&#xff1a; 思考一&#xff1a;为什么&#xff1f; 思考二&#xff1a;快指针一次走3步、4步、......n步&#xff0c;能否相遇 step1&#xff1a; step2&#xff1a; 代码&#xff1a; 题二&#xff1a; 环形链表 I…

PolarisMesh源码系列--Polaris-Go注册发现流程

导语 北极星是腾讯开源的一款服务治理平台&#xff0c;用来解决分布式和微服务架构中的服务管理、流量管理、配置管理、故障容错和可观测性问题。在分布式和微服务架构的治理领域&#xff0c;目前国内比较流行的还包括 Spring Cloud&#xff0c;Apache Dubbo 等。在 Kubernete…

22.《C语言》——【如何进行文件操作?】上集

&#x1f195; 开场白 亲爱的读者&#xff0c;大家好&#xff01;我是一名正在学习编程的高校生。在这个博客里&#xff0c;我将和大家一起探讨编程技巧、分享实用工具&#xff0c;并交流学习心得。希望通过我的博客&#xff0c;你能学到有用的知识&#xff0c;提高自己的技能&…

鸿蒙语言基础类库:【@system.prompt (弹窗)】

弹窗 说明&#xff1a; 从API Version 8 开始&#xff0c;该接口不再维护&#xff0c;推荐使用新接口[ohos.prompt]。本模块首批接口从API version 3开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import prompt from system.prompt;…