Docker-Nvidia(NVIDIA Container Toolkit)

安装NVIDIA Container Toolkit工具,支持docker使用GPU

目录

  • 1.NVIDIA Container Toolkit 安装
    • 1.1 nvidia-docker安装
    • 1.2 验证
    • 1.2.1 验证安装
      • 1.2.2 额外补充

1.NVIDIA Container Toolkit 安装

1.1 nvidia-docker安装

NVIDIA/nvidia-docker

Installing the NVIDIA Container Toolkit - 官方文档

此处使用官方文档所述的apt安装方法(Installing with Apt),其余方法见官方文档:
step1:Configure the production 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

Optionally, configure the repository to use experimental packages:

sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

step2:Update the packages list from the repository:

sudo apt-get update

step3:Install the NVIDIA Container Toolkit packages:

sudo apt-get install -y nvidia-container-toolkit

1.2 验证

1.2.1 验证安装

  • 优秀参考文章
    1.Docker和Nvidia-docker的安装、测试,及运行GUI应用

  • 启动Docker:

systemctl start docker
systemctl enable docker
  • 检查是否安装成功:
sudo docker version

nvidia给的测试镜像nvidia-docker2,
安装nvidia-docker,重启docker服务:

sudo apt-get install nvidia-docker2
sudo systemctl restart docker

载入一个镜像测试:

sudo docker pull nvidia/cuda:10.0-base nvidia-smi

如果出现下图,则nvidia-docker安装成功:
在这里插入图片描述

创建容器:

# 基于cuda10.0的镜像创建一个名为Shrimp_ball的容器
sudo docker run -idt --name Shrimp_ball --gpus all --shm-size 16G nvidia/cuda:10.0-base

这里有三个重要的参数:
–name: 容器的名称
–gpus: gpu编号,可以通过nvidia-smi查询,不启用gpu可以不写该参数,启用所有gpu可以用all
–shm-size: 共享内存的大小,即为容器中内存的大小,可按照自己的需求进行调节

新建一个容器测试一下:

sudo docker run -it --name test_nvidia_docker --gpus all nvidia/cuda:11.0-base

其中最后的参数是nvidia/cuda:11.0-base是根据我的cuda版本设置的参数,具体可以根据工作站主机的cuda版本进行修改,版本查看旧用nvcc -V查看。

进入容器之后可以跑一下nvidia-smi查看到显卡的驱动,然后就可以在docker里正常使用GPU了。

  • Error response from daemon: manifest for nvidia/cuda:latest not found: manifest unknown: manifest unknown 错误解决

Docker Hub中的CUDA, CUDAGL和OPENGL镜像已经弃用"latest"标签,可以直接使用:docker pull nvidia/cuda 或者在Dockerfile中指定:FROM nvidia/cuda:latest 都会出现Error response from daemon: manifest for nvidia/cuda:latest not found: manifest unknown: manifest unknown

解决方法:
在supported-tags中找到与自己系统对应的cuda版本,并将nvidia/cuda:latest中的latest改成对应的版本
在这里插入图片描述
如:Error response from daemon

优秀参考资料:
1.docker学习笔记(9):nvidia-docker安装、部署与使用

1.2.2 额外补充

  • 拉取Nvidia/cuda官方镜像:docker pull nvidia/cuda:10.0-base
    NVIDIA官方提供的docker镜像nvidia/cuda,里面已经编译安装了cuda,但需完善并安装cudnn.注意:这里的cuda版本要跟宿主机显卡驱动匹配.(本次安装的版本是cuda10.0)

  • 生成容器:nvidia-docker run -it --runtime=nvidia -v /宿主机绝对路径目录:/容器内目录 --name 容器名 镜像名 /bin/bash

创建镜像完毕后,进入镜像,输入nvidia-smi,如果输出下图中绿框内的指令,则表明自己的cuda容器创建成功。

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

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

相关文章

SQL Server Query Store Settings (查询存储设置)

参考:Query Store Settings - Erin Stellato 在 SQL Server 2017 中,有九 (9) 个设置与查询存储相关。虽然这些设置记录在sys.database_query_store_options中,但我经常被问到每个设置的值“应该”是多少。我在下面列出了每个设置&am…

AI数字人直播源码解析:灰豚私有化部署背后的技术分析

随着AI数字人技术的应用潜力不断显现,与AI数字人相关的多个项目逐渐成为创业者们的重点关注对象,作为当前AI数字人典型应用场景之一的数字人直播意向人数更是屡创新高,AI数字人直播源码部署的热度也因此不断飙升,与各大数字人源码…

Centos7 安装私有 Gitlab

在 CentOS 7上,下面的命令也会在系统防火墙中打开 HTTP、HTTPS 和 SSH 访问。这是一个可选步骤,如果您打算仅从本地网络访问极狐GitLab,则可以跳过它。 sudo yum install -y curl policycoreutils-python openssh-server perl sudo systemct…

昇思25天学习打卡营第20天|应用实践之RNN实现情感分类

基本介绍 今天的应用实践是RNN实现情感分类,情感分类是自然语言处理中的经典任务,是典型的分类问题。RNN是一种循环神经网络,接收序列数据作为输入。模型训练所采用的数据集是IMDB影评数据集,数据集包含Positive和Negative两类。由…

数据库基础-进阶

数据库管理: *sql语句 数据库用来增删改查的语句 *** 备份 数据库的数据进行备份 * 主从复制,读写分离,高可用 原理 数据库的概念和相关的语法和规范: 数据库:组织,存储,管理数据的仓库。 数据…

cpp 强制转换

一、static_cast static_cast 是 C 中的一个类型转换操作符,用于在类的层次结构中进行安全的向上转换(从派生类到基类)或进行不需要运行时类型检查的转换。它主要用于基本数据类型之间的转换、对象指针或引用的向上转换(即从派生…

使用phpMyAdmin操作MYSQL(四)

一. 学会phpMyAdmin? phpMyAdminhttp://water.ve-techsz.cn/phpmyadmin/ 虽然我我们可以用命令行操作数据库,但这样难免没有那么直观,方便。所以接下来我们使用phpMyAdmin来操作MySQL,phpMyAdmin是众多MySQL图形化管理工具中使用…

编程从零基础到进阶(更新中)

题目描述 依旧是输入三个整数,要求按照占8个字符的宽度,并且靠左对齐输出 输入格式 一行三个整数,空格分开 输出格式 输出它们按格式输出的效果,占一行 样例输入 123456789 -1 10 样例输出 123456789-1 10 #include "stdio.…

2024年7月20日(星期六)骑行支里山

2024年7月20日 (星期六)骑行支里山,早8:00到8:30,大观公园门口集合,9:00准时出发【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:大观公园门口集合 ,家住东,南,北…

【数据结构】树和二叉树及堆的深入理解

【数据结构】树和二叉树及堆的深入理解 🔥个人主页:大白的编程日记 🔥专栏:数据结构 文章目录 【数据结构】树和二叉树及堆的深入理解前言一.树1.1 树的概念1.2 树的相关概念1.3 树的表示1.4 树的应用 二.二叉树2.1 二叉树概念及…

智慧煤矿:AI视频智能监管解决方案引领行业新变革

随着科技的飞速发展,人工智能(AI)技术已经渗透到各个行业,为传统产业的转型升级提供了强大的动力。在煤矿行业中,安全监管一直是一个重要的议题。为了提高煤矿的安全生产水平,降低事故发生率,智…

ubuntu 虚拟机扩容

在使用vmware创建的ubuntu虚拟机进行linux开发时,安装了docker容器,编译会占用很大的磁盘空间,不想创建新的更大空间的虚拟机linux系统,可以通过gparted图形化工具进行扩容,以下是操作方法 虚拟机设置,扩展…

【C语言】详解结构体(上)

文章目录 前言1. 结构体类型的含义2.结构体的声明2.1 结构体声明的语法2.2 结构体变量的创建和初始化 3.结构体的特殊声明4. 结构体的自引用5.小结 前言 C语言的数据类型分为内置数据类型和自定义的数据类型。所谓的内置的数据类型可以认为是C语言自带的数据类型(c…

Java案例遍历集合中的自定义对象

目录 一:案例要求: 二案例分析: ​编辑三:具体代码: 四:运行结果: 一:案例要求: 二案例分析: 三:具体代码: Ⅰ: pack…

Windows系统中MySQL的安装和卸载(详细包含msi和zip下载方式,以及完全卸载方法,易出现问题及解决方案等)

MySQL的安装: 第一种:msi安装(交简单,但是不能自定义安装路径) 下载地址:https://dev.mysql.com/downloads/installer/ 选择历史版本 选择安装版本,这里我选择的是8.0.37的版本,然…

【HarmonyOS】HarmonyOS NEXT学习日记:二、ArkTs语法

【HarmonyOS】HarmonyOS NEXT学习日记:二、ArkTs语法 众所周知TS是JS的超集,而ArkTs则可以理解为是Ts的超集。他们的基础都基于JS,所以学习之前最好就JS基础。我的学习重点也是放在ArkTs和JS的不同点上。 文章主要跟着官方文档学习,跳过了一…

框架设计MVC

重点: 1.用户通过界面操作,传输到control,control可以直接去处理View,或者通过模型处理业务逻辑,然后将数据传输给view。 2.control包含了model和view成员。 链接: MVC框架详解_mvc架构-CSDN博客 MVC架…

【Docker】Docker 的数据管理与镜像创建

目录 一.数据管理 1.数据卷 2.数据卷容器 二.端口映射 三.容器互联 四.Docker 镜像的创建 1.基于现有镜像创建 1.1.首先启动一个镜像,基于镜像创建容器,更新容器内容 1.2.将修改后的容器提交为新的镜像,需要使用该容器的 ID 号创建新…

算法2--贪心算法

1.老鼠和猫的交易 小老鼠准备了M磅的猫粮,准备去和看守仓库的猫做交易,因为仓库里有小老鼠喜欢吃的五香豆。 仓库有N个房间; 第i个房间有 J[i] 磅的五香豆,并且需要用 F[i] 磅的猫粮去交换; 老鼠不必交换该房间所有的五…

中国星坤X0800HI系列线对板连接器:创新技术连接,引领智能家居未来!

近日,中国星坤推出的X0800HI系列线对板连接器,凭借其独特的设计和卓越的性能,引起了业界的广泛关注。 X0800HI系列线对板连接器在极小空间内实现了线对板的W-B连接,这不仅解决了传统连接方式中剥线和焊接的繁琐步骤,还…