deepin安装docker和pytorch


title: deepin安装docker和pytorch
date: 2023-06-01 17:28:58
tags: [linux, torch,docker]


deepin安装docker和pytorch

总体的流程图大致如下,首先是安装linux,这个直接跳过,接下来就是安装docker,之后,安装docker之后,安装pytorch image,然后使用vscode来进行深度学习开发。这样。不需要每次都要进行配置环境,直接使用这个镜像,构建多个容器,可以互不影响。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xSQozpPs-1685614587544)(https://fastly.jsdelivr.net/gh/weijia99/blog_image@main/1685611681945deepin%E5%AE%89%E8%A3%85docker.png)]

1.docker相关设置

1.docker安装

前情提示,由于dockerhub,最近几天已经被gfw给404了,建议首先安装好了就来进行更换镜像。

由于deepin是Debian的分支,因此我们选择Debian的安装命令,详细教程参考Debian Docker 安装 | 菜鸟教程 (runoob.com)

主要命令就是

 curl -fsSL https://get.docker.com -o get-docker.sh
 sudo sh get-docker.sh

注意,安装完成之后,请务必换源

Docker 镜像加速 | 菜鸟教程 (runoob.com)

主要是在下面进行在 /etc/docker/daemon.json 下面增加源,这个地方也可以修改,image默认下载的地方

{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

之后执行重启。

1.2加入到docker用户组

之后,因为使用docker默认是需要特权docker组里的成员才能使用,所以我们需要把当前用户加入到docker组里面

主要参考的是这个博文,首先查看是不是已经有了docker用户组,已经有了我们直接进行加入当前用户,然后进行重启。

sudo cat /etc/group | grep docker

sudo usermod -aG docker 要添加的user

sudo chmod a+rw /var/run/docker.sock

sudo systemctl restart docker

1.3附加内容(配置自己的images)

每次换到一个新电脑的时候,最麻烦的事情就是进行环境配置,下载所需要的安装软件,一个个的执行。现在有了docker,我们可以直接去dockerhub你输入命令来得到所需要的环境。例如java开发的环境(mysql,MongoDB和redis等)。

参考下面的教程:

Docker搭建Java开发环境 (chennn.com)

现在我要构建一个属于自己的开发环境,例如只需要java和maven,那么我们改如何得到呢。现在,这里我们需要使用的是dockerfile这个文件,通过这个文件看我们可以构建出来哦自己的images。

。dockerfile语法如下 :Docker Dockerfile | 菜鸟教程 (runoob.com)

首先需要定义一个from,这个就相当于原始文件,我们首先定义from openjdk,来作为自己的原始image,之后根据自己的需要来进行修改。之后,我们需要使用maven,这里我们选择编译安装。分为下面几步。

  1. 下载maven源码
  2. 进行解压
  3. 然后进行移动到local目录里面
  4. 设置环境变量

我们使用run 来执行每一个shell 命令,

之后就是设置环境变量,因为gfw的原因,有时候,我们需要使用代理,还有吧上面的源码放入到env上面,所以需要使用或者其他端口隐射到envv来进行设置。

FROM openjdk:8

RUN wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.zip
RUN unzip apache-maven-3.8.6-bin.zip
RUN mv apache-maven-3.8.6 /usr/local/maven
RUN rm -rf apache-maven-3.8.6-bin.zip

ENV MAVEN_HOME=/usr/local/maven
ENV PATH=$MAVEN_HOME/bin:$PATH

这样,我们就构建好了自己的开发包。

上面的代码还可以精简,我们只需要使用一个run ,剩下的全部用&&连接shell命令就可以

然后 我们进行构建,使用这个dockerfile

docker build -t java-env:8 .

最后我们就是启动容器

docker run -itd --name java-base-env java-env:8

如果需要进入到容器内部,我们可以使用docker exec -it 容器名称


扩展:使用gateway来进行远程开发。我们可以在images里面安装openssherver,然后修改、etc/ssh/sshd_config里面的允许root登录还有密码登录,之后,设置这个为自动启动。

参考下面这个连接:VSCode+Docker: 打造最舒适的深度学习环境 - 知乎 (zhihu.com)

之后,我们在docker启动的时候设置端口映射这个容器,吧9001或者其他端口映射到22,然后使用gateway进行远程连接,输入端口9001,账户密码,就可以进行开发了。

2.deepin配置pytorch镜像

2.1deepin的设置

首先,我们需要对deepin进行设置,默认没有安装cuda,我们直接使用deepin官方的命令,安装cuda-toolkit,还有nvidia-smi进行apt安装。之后就完成了。有些版本是需屏蔽自己显卡,然后才能安装,笔者目前没有与到,安装比较简单。命令都在开始的思维导图上面。

2.2(可选)配置proxychains

来进行国内访问加速,直接apt 进行安装就行,然后修改配置文件 /etc/proxychains.conf。

参考这篇文章 linux命令行代理神器-proxychains - 知乎 (zhihu.com)

在.bashrc里面设置alias pr =proxychains,进行缩短单词

2.3安装pytorch

直接根据沐神的github推荐的image来使用

mli/transformers-benchmarks: real Transformer TeraFLOPS on various GPUs (github.com)

sudo docker run --gpus all -it --rm -p 8888:8888 -v ~:/workspace \
	--ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
	nvcr.io/nvidia/pytorch:22.07-py3

这样我们直接进入到容器里面了。我们使用screen 吧这个容器放入到后台执行。

这样就安装完成。同事还把我们的home目录隐射到workdir里面,我们可以访问到workdir的文件来找到服务器的文件

3.vscode/idea/pycharm的使用

3.1vscode进行配置

我们首先进去插件商店,安装dev dontainer。之后使用远程连接到docker宿主机上

在宿主机上面选择开发容器,我们就可以进入到刚刚的pytorch容器里面

3.2idea的设置

这里直接使用gateway来进行设置,选择新建一个ssh,我们输入之前映射到22的端口,还有账号密码(详情加1.3),然后进行连接,之后选择后端版本的idea,这样idea后端就部署到容器里面。之后,我们就可以进行远程及开发

3.2pycharm设置

对于pycharm,不需要上述那么复杂,我们直接进行远程开发,ssh到宿主机器的22端口,然后我们选择解释器interpret为docker里面的容器,就可以直接执行python代码,来进行调试开发了。

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

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

相关文章

spring cloud搭建(eureka)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习新东西是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习…

再识openmmlab,用mmDeploy实现部署的前期需要了解一些内容

OpenMMLab 是一个用于学术研究和工业应用的开源算法体系,于2018年年中开始,由 MMLab(香港中文大学多媒体实验室)和商汤科技联合启动。 如果第一接触的话,还是建议参考官方环境配置教程:Windows 环境配置 -…

OpenGL超级宝典第八章学习笔记:基元处理之曲面细分

前言 本篇在讲什么 OpenGL蓝宝书第八章学习笔记之曲面细分 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 具有全流程的图文教学 重实践,轻…

有道云笔记也挺速度,也搞了个AI助手,能抗衡Notion AI?

前言 小编平时做技术笔记的时候,经常使用到的软件就是有道云笔记,最近无意间发现,笔记编写的页面中,竟然集成了AI助手!网易有道可真是低调!毕竟最近AI圈大火,竟然没有蹭一波热度,直…

决策树理论

这个文本讨论了决策树模型中的基尼系数。当数据集的所有数据属于同一类时,基尼系数为0,因为此时无需进行分类,已经属于同一类别。因此,选项B是正确的。 决策树是一种用于分类和预测的机器学习模型。基尼系数是衡量数据集纯度的指标…

苹果服务端通知v2处理(AppStore Server Notifications V2)

苹果服务端通知v2处理 关键词: App Store Server Notifications V2、Python源码、苹果订阅、JWS、x5c、JSON WEB TOKEN 背景 最近要接入苹果订阅功能,调研后发现订阅生命周期内的状态变更是通过苹果服务端通知返回的(什么时候普通内购也能加上减少掉单的概率)&am…

Qt在MySQL中存储音频文件

一、在存储音频视频等大文件时需要以二进制文件进行存储,首先需要了解mysql存储二进制文件的字段类型以及大小: 需要创建数据库中的图片类型为:二进制mediumblob类型,( TinyBlob 最大 255 Blob 最大 65K MediumBlob …

基于区域的图像分割

文章目录 基于区域的图像分割基本原理常用的算法实现步骤示例代码结论 基于区域的图像分割 基于区域的图像分割是数字图像处理中常用的一种方法,它通过将图像中的像素分配到不同的区域或对象来实现图像分割的目的。相比于基于边缘或阈值的方法,基于区域…

“智慧赋能 强链塑链”—— 汽车行业供应链管理数字化应用探讨

01车企供应链数字化的必要性 汽车供应链是一个复杂的系统,很多汽车企业因为供应链管理不当,造成资源浪费、成本高、客户满意度低等一系列问题;而汽车行业规模技术门槛高、配合协同复杂的特性,决定了其供应链缺口无法在短时间内填…

结构体大小的计算

结构体计算要遵循字节对齐原则。 结构体默认的字节对齐一般满足三个准则: 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需…

【利用AI让知识体系化】7种结构型模式

文章目录 结构型模式简介适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式 结构型模式 简介 在设计模式中,结构型模式用于描述如何将对象和类组装成较大的结构,并灵活地处理对象之间的关系。 结构型模式包括以下几种: 适配器…

opencv 图像识别

opencv的目标是使计算机可以快速准确地从数字图像中提取和分析特征。它使用了许多新的算法和技术,例如改进的模板匹配、基于统计的特征分析以及深度学习等。opencv支持多种平台,包括 Windows、 MacOS、 Linux和 Android,开发者可以使用 OpenC…

浏览器相关前端开发事项

文章目录 存储浏览器持久化存储(F12->应用->存储)浏览器缓存(F12->内存)浏览器存储管理单位(域名/IP为单位)区别localStorage VS 浏览器缓存localStorage VS cookies 存储 浏览器持久化存储&…

【CORS策略: Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed导致的跨域问题】

引起跨域CORS报错的原因有很多种!!!!! 这里我的报错属于最后一条。 探索的原因 正常axios请求接口,调试接口时出现以下问题 Access to XMLHttpRequest at http://192.168.31.111:9000/api/user/sessio…

皮卡丘../../(目录遍历)/敏感信息泄露/PHP反序列化

一.目录遍历 1.概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量,从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时,便会将请求的这个文件的值(比如文件名称)传递到后台,后台再执行其对应的文件。 在这个过程中…

【MySQL数据库 | 第四篇】SQL通用语法及分类

目录 🤔SQL通用语法: 😊语句: 😊注释: 🤔SQL语句分类: 😊1.DDL语句: 😊2.DML语句: 😊3.DQL语言: &…

C++STL库之map

文章目录 关于仿函数stackdeque(双端对列)queuepriority_queuemap(重点)set(去重) 关于仿函数 //C不能重载的运算符sizeof、 ::、 ? :、 .、 *、 class Add { public:int operator()(int a, int b)const{return a b;} }; //函数对象,仿函数…

2022年长三角高校数学建模竞赛C题隧道的升级改造与设计解题全过程文档及程序

2022年长三角高校数学建模竞赛 C题 隧道的升级改造与设计 原题再现: 某地现存一旧式双洞隧道,现计划将该隧道在旧貌基础上升级改造。在升级改造前,需进行定标与设计。考虑到该隧道洞壁附着特殊涂料,无人机在洞内通信信号较差&am…

LIBEVENT 框架

LIBEVENT 框架 LAMPlibevent特点:libevent的功能libevent官网安装步骤Linux下libevent主要API介绍libevent使用步骤libevent 编程案例LAMP 从LAMP说起: 是一个缩写,它指一组通常一起使用来运行动态网站或者服务器的自由软件 Linux - 操作系统Apache - 网页服务器MySQL - 数据…

基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注

从本篇博客正式开始深度学习项目的记录,实例代码只会放通用的代码,数据集和训练数据也是不会全部放出。 系列文章: 基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注 基于Yolov5目标检测的物体分类…