docker 获取Nvidia 镜像 | cuda |cudnn

2023-09-14 22:17:04

本文分享如何使用docker获取Nvidia 镜像,包括cuda10、cuda11等不同版本,cudnn7、cudnn8等,快速搭建深度学习环境。

1、来到docker hub官网,查看有那些Nvidia 镜像

https://hub.docker.com/r/nvidia/cuda/tags?page=2&name=11.3
 

这里可以输入cuda的版本比如11.6,或筛选出相关的镜像:

https://hub.docker.com/r/nvidia/cuda/tags?page=1&name=11.6

旁边还有镜像名称的排序方式:

2、拉取镜像到本地

选择好想要的镜像,比如:11.3.1-cudnn8-devel-ubuntu20.04

点击右边的复制按键

复制到命令:

docker pull nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04

然后到命令终端执行:

这时就开始把nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04镜像,拉到本地啦,需要等待一会。

3、查看镜像,打开镜像

拉取镜像完成后,用docker images命令查看镜像的情况:

docker images

能看到nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04镜像在本地了,镜像大小是8.95G。

打开镜像(常规模式--支持使用GPU)

docker run -i -t --gpus all nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04  /bin/bash

打开镜像(增强模式--支持使用GPU、映射目录、设置内存)

docker run -i -t -v /home/liguopu/:/guopu:rw --gpus all --shm-size 16G nvidia/cuda:11.3.1-cudnn8-devel-ubuntu20.04  /bin/bash

平常进入了docker环境,然后创建或产生的文件,在退出docker环境后会“自动销毁”;或者想运行本地主机的某个程序,发现在docker环境中找不到。

我们可以通过映射目录的方式,把本地主机的某个目录,映射到docker环境中,这样产生的文件会保留在本地主机中。

通过-v 把本地主机目录 /home/liguopu/ 映射到docker环境中的/guopu 目录;其权限是rw,即能读能写。

默认分配很小的内参,在训练模型时不够用,可以通过参数设置:比如,我电脑有32G内参,想放16G到docker中使用,设置为 --shm-size 16G。

4、测试镜像cuda和cudnn

用nvidia-smi看看显卡信息

这里看到的CUDA Version: 11.4,是和主机一致的,但我们想要的是11.3,没关系继续往下看。

用nvcc -V 命令查看,才是实际的cuda版本,后面搭建深度学习环境,也是依赖这里的cuda 11.3。

用ls /usr/local/命令看看cuda安装路径

下面就开始搭建深度学习环境啦

5、安装conda环境

默认的系统镜像可能没有conda也没有python,我们可以安装Anaconda,来搭建深度学习环境

 这里有两个下载地址可以选择,分别是官方下载地址、清华大学开源软件镜像站。

官方下载地址:Free Download | Anaconda

 如果觉得官方地址下载慢,可以尝试下清华大学的下载地址:

清华大学开源软件镜像站:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

 

比如选择:Anaconda3-2023.07-2-Linux-x86_64.sh 

安装Anaconda3

进入下载文件的位置,打开终端terminal在文件目录下,使用bash 执行安装就可以啦:

bash Anaconda3-2023.07-2-Linux-x86_64.sh

安装过程:

1)输入回车键确认安装;

2)阅读Anaconda最终用户许可协议,按下回车浏览完信息;

3)问我们是否接受该协议,只能接受了,输入yes;(Do you accept the license terms? [yes|no])

4)提示安装到以下位置,回车确认即可;(Anaconda3 will now be installed into this location:)

5)是否加入环境变量,通常是选择yes的;这个根据自己情况选择,如果经常用conda环境开发,建议选择yes(Do you wish the installer to initialize Anaconda3 in your /home/linuxidc/.bashrc ? [yes|no])

开始安装页面

安装过程:

完成conda安装:

用另一个终端打开这个镜像创建的容器:

能看到能conda的初始环境了,说明conda安装成功啦。

更多推荐

代码随想录算法训练营Day46 | 动态规划(8/17) 1.练习题 LeetCode 139.单词拆分 2.多重背包 3. 背包问题总结篇!

背包问题要结束了!首先是今天的练习题,然后是多重背包的知识点,最后对这几天背包问题做一个总结!1.练习题139.WordBreakGivenastringsandadictionaryofstringswordDict,returntrueifscanbesegmentedintoaspace-separatedseq

Linux之Socket函数(详细篇)

本篇是基于Linuxman手册的一些总结socket作用:createanendpointforcommunication函数结构```c#include<sys/types.h>/*SeeNOTES*/#include<sys/socket.h>intsocket(intdomain,inttype,intproto

代理IP与Socks5代理:跨界电商之安全防护与智能数据引擎

第一部分:跨界电商的兴起与网络安全挑战1.1跨界电商的崭露头角跨界电商已经成为全球贸易的新引擎,企业纷纷踏上了拓展国际市场的征程。1.2网络安全的不容忽视跨界电商的增长也伴随着网络安全威胁的增加。黑客攻击、数据泄露和欺诈行为等风险呈上升趋势,给企业带来了巨大挑战。第二部分:代理IP与网络安全2.1代理IP:网络安全的守

Qt5开发及实例V2.0-第十章Qt网络与通信

Qt5开发及实例V2.0-第十章Qt网络与通信第10章Qt5网络与通信10.1获取本机网络信息10.2基于UDP的网络广播程序10.2.1UDP协议工作原理10.2.2UDP编程模型10.2.3【实例】:UDP服务器编程10.2.4【实例】:UDP客户端编程10.3基于TCP的网络聊天室程序10.3.1TCP协议工作原

解决Agora声网音视频在后台没有声音的问题

前言:本文会介绍Android与iOS两个平台的处理方式一、Android高版本在应用退到后台时,系统为了省电会限制应用的后台活动,因此我们需要开启一个前台服务,在前台服务中发送常驻任务栏通知,以此来保证App退到后台时不会被限制活动.前台服务代码如下:packagecom.notify.test.service;im

多输入多输出 | MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出

多输入多输出|MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出目录多输入多输出|MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出预测效果基本介绍程序设计往期精彩参考资料预测效果基本介绍多输入多输出|MATLAB实现GA-BP遗传算法优化BP神经网络多输入多输出1.data为数据集,10个输入

基于未知环境碰撞冲突预测的群机器人多目标搜索研究

源自:指挥与控制学报作者:边晓荟周少武张红强吴亮红王汐王茂刘朝华陈磊“人工智能技术与咨询”发布摘要群机器人在未知动态环境下进行多目标搜索时,存在碰撞预测和搜索效率不高等问题。提出了一种碰撞几何锥和改进惯性权重的粒子群优化算法相结合的多目标搜索策略。首先,根据静、动态威胁物的不同分别引入碰撞锥(CC)和速度障碍法(VO)

javaScript:事件冒泡和事件捕获

目录什么情况下需要考虑事件冒泡事件冒泡的过程事件捕获相关代码阻止事件冒泡的方法什么情况下需要考虑事件冒泡需要考虑事件冒泡的条件1.同一个页面区域内,具有多个元素2.这些元素相互构成父子关系3.这些元素同时绑定了相同的事件事件冒泡的过程事件冒泡的过程从最内层元素最先开始,执行事件绑定的函数,函数执行完毕后,冒泡的父级上,

算法通关村-----表达式问题

基本计算器II问题描述给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。你可以假设给定的表达式总是有效的。所有中间结果将在[-231,231-1]的范围内。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval()。详见leetcode227问题分析我们可以通过栈

设计一个基于 GraphQL 的 Node.js 工单系统

目录表结构GraphQLSchema权限设置代码实现Query部分Mutation部分DataLoader引入查询GraphQLEdge分页实现OAuth鉴权MySQL数据库存储,Redis缓存OAuth鉴权Dataloader数据查询优化GraphQL底层接口数据引擎表结构数据库采用MySQL,核心两张表,分别是工单

抖音seo账号矩阵源码系统

1.开通多个抖音账号,并将它们归纳为一个账号矩阵系统。2.建立一个统一的账号管理平台,以便对这些账号进行集中管理,包括账号信息、内容发布、社区交互等。3.招募专业的运营团队,对每个账号进行精细化运营,包括内容制作、社区互动、数据分析等。4.建立账号矩阵系统的KPI体系,制定明确的目标和指标,对每个账号进行全面的数据分析

热文推荐