Windows11下Docker使用记录(五)

目录

    • 准备
    • 1. WSL安装cuda container toolkit
    • 2. win11 Docker Desktop 设置
    • 3. WSL创建docker container并连接cuda
    • 4. container安装miniconda(可选)

Docker容器可以从底层虚拟化,使我们能够在 不降级 CUDA驱动程序的情况下使用 任何版本的CUDA Toolkit,非常方便。
当然,Docker容器并不会提供真正的硬件虚拟化,而是通过隔离喝共享宿主机的操作系统内核来实现虚拟化。

准备

名称版本
win11
wsl2Ubuntu-22.04(以下简称WSL)
(Host) Driver Version537.58(不建议更高版本)

1. WSL安装cuda container toolkit

需要docker深度学习的这个必装,因为我们后续是从wsl中创建docker container。
安装说明链接:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
我是按以下安装的:

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
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
systemctl --user restart docker

2. win11 Docker Desktop 设置

Docker Desktop setting里设置如下,这样wsl中的docker image 和 container 也都可以在Docker Desktop这里看到。
在这里插入图片描述

3. WSL创建docker container并连接cuda

在docker中使用nvidia gpu需要使用nvidia/cuda发布的images,看tag可以选cuda-toolkit版本。我选的是11.6的,这里需要注意的是runtime版本虽然小,但是cuda-toolkit不完整,所以最后我选的是11.6.1-cudnn8-devel-ubuntu20.04在这里插入图片描述
在wsl里运行:

docker pull nvidia/cuda:11.6.1-cudnn8-devel-ubuntu20.04
# 为了保证可视化 run image 时加以下参数
docker run -it --gpus all  -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all --name 自定义 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --device=/dev/dri:/dev/dri -p 自定义:自定义 nvidia/cuda:11.6.1-cudnn8-devel-ubuntu20.04 bash

安装VcXsrv可以可视化,可视化的部分请看这篇。
这时候已经有/cuda了。

(robodiff) root@108c7c90b1f5:/usr/local# ls
bin  cuda  cuda-11  cuda-11.6  etc  games  include  lib  man  sbin  share  src

但这时候 nvcc -V应该是不可以的,需要先给/cuda/cuda-11.6建立链接,然后在~/.bashrc里添加以下,记得source ~/.bashrc

# 给`/cuda`和`/cuda-11.6`建立链接
ln -sf /usr/local/cuda-11.6 /usr/local/cuda
export CUDA_HOME=/usr/local/cuda
export PATH=${PATH}:${CUDA_HOME}/bin
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

这时候nvcc -V可以,是我想要的v11.6如下图。
在这里插入图片描述

我们也可以用cuda-samples进一步验证。(此步可略)

cd /usr/local/cuda/
git clone https://github.com/NVIDIA/cuda-samples.git
cd cuda-samples
git checkout tags/v11.6 #选择指定tag的版本
cd Samples/1_Utilities/deviceQuery
make #这时候会生成名为 deviceQuery 的可执行文件
./deviceQuery #运行它会显示cuda相关的所有信息

最后一行显示了 Result = PASS 就说明我们cuda安装成功并且可以运行了。
此时,装的pytorch就可以使用GPU了。
在这里插入图片描述

4. container安装miniconda(可选)

container中可以安装 minicoda,各个版本的链接在这:https://repo.anaconda.com/miniconda/。选个自己需要的版本安装,我的版本是Miniconda3-py39_24.1.2-0-Linux-x86_64.sh

wget https://repo.anaconda.com/miniconda/Miniconda3-py39_24.1.2-0-Linux-x86_64.sh -O /opt/conda/miniconda.sh \ && bash 
chmod +x /opt/conda/miniconda.sh
. /opt/miniconda/bin/activate

这时候会打开conda并创建base环境,说明我们安装成功。为了不每次打开conda都要运行. /opt/miniconda/bin/activate,我把它写在~/.bashrc里,然后source ~/.bashrc,这样打开的所有terminal都可以使用conda。
在这里插入图片描述

开始我们的深度学习吧 ~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

激活函数对比

激活函数 sigmoid / tanh / relu / leaky relu / elu / gelu / swish 1、sigmoid 优缺点 1) 均值!0,导致fwxb求导时,方向要么全正要么全负 可以通过batch批量训练来缓解 2) 输入值大于一定范围梯度就会消失 3) 运算复杂 2、tanh 优缺点 1) 均值0 2)…

Ubuntu部署开源网关Apache APISIX

说明 系统:Ubuntu 24.04 LTSDocker版本:v26.1.3Docker Compose版本:v2.26.1 下载和配置 Ubuntu需要安装Docker和Docker Compose 下载apisix-docker仓库 git clone https://github.com/apache/apisix-docker.git修改docker-compose 配置e…

接口自动化框架封装思想建立(全)

httprunner框架(上) 一、什么是Httprunner? 1.httprunner是一个面向http协议的通用测试框架,以前比较流行的是2.X版本。 2.他的思想是只需要维护yaml/json文件就可以实现接口自动化测试,性能测试,线上监…

【2024】零基础Python 快速入门篇

2023年是AI的元年,AI的爆火不仅推动了科技领域的进步,更让 Python 语言成为了这一变革中的关键角色。 Python 语言简单易懂,语法清晰明了,懂一点英语的都能学得会。很适合在职场摸爬滚打多年的前端组长作为捅破天花板的语言&…

【漏洞复现】用友NC downCourseWare 任意文件读取漏洞

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC …

贪心算法学习一

例题一 解法(贪⼼): 贪⼼策略: 分情况讨论: a. 遇到 5 元钱,直接收下; b. 遇到 10 元钱,找零 5 元钱之后,收下; c. 遇到 20 元钱&#xff1a…

JWT及单点登录实现

JWT发展简史 JWT Token JSON Web Token (JWT,RFC 7519 (opens new window)),是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519)。 ID Token OIDC (OpenID Connect) 协议 (opens new window)对 OAuth 2.0 协议 …

【SpringBoot + Vue 尚庭公寓实战】项目初始化准备(二)

尚庭公寓SpringBoot Vue 项目实战】项目初始化准备(二) 文章目录 尚庭公寓SpringBoot Vue 项目实战】项目初始化准备(二)1、导入数据库2、创建工程3、项目初始配置3.1、SpringBoot依赖配置3.2、创建application.yml文件3.3、创建…

【Mac】Alfred 5 for Mac(苹果效率提升工具)v5.5软件介绍及安装教程

软件介绍 Alfred 是适用于 Mac 操作系统的流行生产力应用程序。它旨在帮助用户在 Mac 电脑上更高效地启动应用程序、搜索文件和文件夹以及执行各种任务。借助 Alfred,用户可以创建自定义键盘快捷方式、设置自定义工作流程并使用热键访问功能。 Alfred for Mac 的一…

离散数学期末复习题库(含答案)

目录 1.判断题 1-1 1-2 1-3 1-4 2.选择题 2-1 2-2 2-3 3.多选题 3-1 4.填空题 4-1 4-2 4-3 4-4 4-5 5.主观题 5-1 5-2 5-3 5-4 1.判断题 1-1 ϕ⊆{ϕ} (对) 1-2 {a,b}∈{a,b,c,{a,b}} (对) 1-3 {a,b…

【西瓜书】2.模型评估与选择

1.经验误差与过拟合 (1)错误率、精度 (2)误差:训练误差/经验误差、泛化误差 (3)过拟合、欠拟合 欠拟合好克服,过拟合无法彻底避免 2.三大任务——评估方法 泛化误差的评估方法&a…

14本剔除!Scopus目录第四次更新,Hindawi期刊再次上榜

【SciencePub学术】近期,Scopus数据库迎来本年度第四次更新!此次更新后,有89本期刊发生变动: 变动详情 •【新增】75本新增期刊进入Scopus数据库 •【剔除】14本期刊被Scopus数据库剔除 目前Scopus 来源出版物列表(…

day4-函数图像

基础知识 幂函数 研究最值,可以用单调性一样的函数 指数函数 牛啊 lnx 三角函数 比如计算定积分 例1 的第二步不会 求导 严格来说,还要验证,导数 是不是 大于0 再 小于0,判断是最大值还是最小值 例2 easy 买的资料到手了&#x…

JVM之【类的生命周期】

首先,请区分Bean的声明周期和类的声明周期。此处讲的是类的声明周期 可以同步观看另一篇文章JVM之【类加载机制】 概述 在Java中数据类型分为基本数据类型和引用数据类型 基本数据类型由虚拟机预先定义,引用数据类型则需要进行类的加载 按照]ava虚拟机…

伯克希尔·哈撒韦:“股神”的“登神长阶”

股价跳水大家见过不少,但一秒跌掉62万美元的你见过吗? 今天我们来聊聊“股市”巴菲特的公司——伯克希尔哈撒韦 最近,由于纽交所技术故障,伯克希尔哈撒韦A类股股价上演一秒归“零”,从超过62万美元跌成185.1美元&…

python API自动化(接口测试基础与原理)

1.接口测试概念及应用 什么是接口 接口是前后端沟通的桥梁,是数据传输的通道,包括外部接口、内部接口,内部接口又包括:上层服务与下层服务接口,同级接口 外部接口:比如你要从 别的网站 或 服务器 上获取 资源或信息 &a…

开源网关Apache APISIX启用JWT身份验证

说明: 本文APISIX的配置参考我之前写的《Ubuntu部署Apache APISIX》 创建最小API 首先,确保你已经安装了.NET 6 SDK。创建文件夹“MinimalApiDemo”,VS Code打开文件夹,打开终端 dotnet new web -o MinimalApiDemo cd Minimal…

AGP8+ android.useNewApkCreator‘ is deprecated 打包失败

问题 新建一个项目,默认使用最新版的 AGP 和 Gradle,打包构建立马失败! 错误日志 Caused by: com.android.builder.errors.EvalIssueException: The option android.useNewApkCreator is deprecated. An exception occurred applying plu…

gitee上传整个项目文件夹

1.访问git官网并下载 Git 如下图: 点击download,然后选择合适的版本进行下载: 如下图,我下载的是2.32.0.2版本,64位windows版。 下载完之后,直接点击安装。 然后根据向导,一路默认到安装完成。…

数据虚拟化:零数据搬运,实现全域数据的集成和自适应加速

数据虚拟化技术的兴起,与传统数据仓库体系的弊端日益显现有着密切关系。 过去,企业通常会构建数据仓库来存储与加工结构化数据。数据仓库虽然实现了数据的物理集中存储,但过于依赖大量的 ETL 工程师来支持数据的集成、准备、开发与管理。随着…