【docker】在windows下配置linux深度学习环境并开启ssh远程连接

news2024/11/25 8:22:11

liunux下配置深度学习程序方便,windows下用起来更习惯。
windows下直接利用虚拟机是不太容易对GPU进行虚拟,利用docker就可以。这里简单介绍了在win主机下如利用docker,配置虚拟机环境,并和主机开启ssh连接配置。

配置与系统要求

win10 22H2或者win11系统,nvidia显卡。(系统必须符合要求,否则无法在docke虚拟机中启动GPU,失败的例子:https://blog.csdn.net/rocking_struggling/article/details/126068555)

1.windows下docker安装与使用

参考我以前的这篇博客:https://blog.csdn.net/rocking_struggling/article/details/126073339
安装完成docker后(建议pull nvidia官方的docker,里面自带cuda环境),使用如下命令启动docker的image:

docker run -it -p 50003:22--gpus=all  --privileged Unbuntu-env(要启动的Image名字) 

这几个启动参数中:--gpus=all 是调用GPU,--privileged是开放openssh防止报错,-p 50003:22是端口映射,允许ssh登录进去。(后面本文具体介绍其作用)
设置虚拟机的密码:

passwd
#接下来输入两边新密码(默认的用户名是root,密码就是你输入的这个)

启动docker后,安装必备的一些程序,后面能够用到:

apt-get update
apt install net-tools        # ifconfig 
apt install iputils-ping     # ping
apt install sudo
apt-get install vim

2.docker配置GPU

nvidia官方有已经配置好cuda环境的,我们直接pull下来就行,但启动image的时候,要加参数--gpus=all(启动容器的时候就不需要了,直接docker start即可)
比如:

docker run -it --gpus=all nvidia/cuda:11.4.2-base-ubuntu20.04 

进入系统nvidia-smi一下,看看是否调用GPU成功:
在这里插入图片描述

3. 安装必备的一些软件(anaconda、openssh)

要简单上诉功能,需要在docker虚拟机下安装相应的服务。深度学习相关的anaconda安装不在介绍,这里主要介绍一下安装openssh。
参考博客:https://blog.csdn.net/youandme520/article/details/120356451
安装ssh-server服务

sudo apt-get install openssh-server

启动ssh服务:

service ssh start

确认ssh服务器是否开启:

ps -e | grep ssh

很多这一步会报错,需要在docker启动image项添加--privileged

4.配置ssh服务

首先关闭ssh:

sudo /etc/init.d/ssh stop 
#或者
service ssh stop

然后打开ssh配置文件

sudo vim /etc/ssh/sshd_config

在打开的文件中主要修改两处:
1.将port 22前面的 "#"号去掉,默认端口设置为22
2.将#PermitRootLogin prohibit-password”修改为“PermitRootLogin yes”

(这里需要了解一下如何使用vim进行编辑,参考:https://www.runoob.com/linux/linux-vim.html)

编辑完成后重新启动ssh服务

service ssh restart

查看虚拟机的Ip地址

ifconfig  #需要提前安装

在这里插入图片描述
我本文发现第一个IP地址:172.17.0.2从主机ping不通,但是第二个回环IP:127.0.0.1可以ping通。但是想要ssh登录docker虚拟机还需要将22端口给映射出来,这里启动image时添加参数:-p 50003:22
完成了上述操作后,我们可以在主机利用ssh登录(保持docker虚拟机在后台,不要关闭):

  • ip地址:回环地址127.0.X.X(整个地址段都可以登录)
  • 用户名:root
  • 密码:(上文passwd设置的密码)
  • 端口号:启动时条件的参数,这里是50003

如图用mobaxterm登录所示:
在这里插入图片描述
登录成功界面:在这里插入图片描述
有的时候长时间不用,docker虚拟机可能会被清内存啥的,出现连接不上ssh,无法调用gpu的bug,这是需要重启一下虚拟机(container),然后再重新打开ssh服务即可。

其他

1.docker虚拟环境在安装opencv时也会报错:libGL.so.1: cannot open shared object file: No such file or directory
参考:https://blog.csdn.net/qq_50195602/article/details/124188467
要么安装这个版本的opencv:

pip install opencv-python-headless

或者

RUN apt-get update
RUN apt-get install ffmpeg libsm6 libxext6  -y

2.我这里提供一个已经安装好openssh及深度学习环境的镜像,大家不用配置了,直接pull即可:

docker push 230229348/unbuntu-deep-ssh:latest

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

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

相关文章

Delta数据湖upsert调优---1000多列表的调优

背景 本文基于 spark 3.1.1 delta 1.0.0 目前在我们公司遇到了一个任务写delta(主要是的upsert操作),写入的时间超过了6个小时,该spark主要的做的事情是: 一行数据变几百行开窗函数去重调用pivot函数 行列的转换&…

Linux 串口工具minicom

Linux minicom Linux中的Minicom是一个串口通信工具,用于与外部设备进行串口通信。它可以用于与嵌入式设备、调试设备、网络设备等进行通信和配置。 调试和配置串口设备:minicom可以用于连接和调试各种串口设备,如调制解调器、路由器、交换…

软件DevOps云化发展的趋势 【课程限时免费】

你了解什么是DevOps吗? 它是怎么诞生的? DevOps能做些什么? 相信对于DevOps的实践者和关注者来说,对它已经不陌生了,但是对于刚刚进入开发者领域不久的小伙伴应该并不清楚,下面就让小智带你一起了解DevO…

node初识

一、什么是node node官网:https://nodejs.cn/ Node.js是一个开源的、跨平台的JavaScript运行环境。它基于Chrome V8 JavaScript引擎,使得JavaScript可以在服务器端运行。Node.js具有事件驱动、非阻塞式I/O的特性,适用于开发高性能的网络应…

ue4_Dota总结 GameMode篇

一:框架设计 新建地图M01; 创建gamemode; 创建gamestate; 创建playercontroller; 创建hud; 创建pawn; 将gamemode设置为M01地图中;将gamestate/playercontroller/hud/pawn添加…

SourceTree 切换分支时提示框 OpenSSH助手验证失败

问题描述: 这是我找的别的图,我自己的图忘记截了,大概意思差不多,就是服务器验证失败: 解决办法 :以下3步 1、命令行输入 ssh-keygen 然后一直下一步,直到结束,密钥和公钥会…

Dbeaver 往s4 HANA自建表 导入数据

今天有一份数据 13W行 需要导入S4 自建表。本来搞了一个通用的自建表导入程序,无奈13W行的数据就是无法读取,200行倒是可以。 那非常时期,用非常手段,尝试了一下刺激,dbeaver 导入到S4 HANA数据 后面试一下&#xff…

【运维工程师学习】磁盘相关知识——磁盘、柱面、磁道、磁头、扇区、格式化

【运维工程师学习】磁盘 1、DOS(Disk Operating System)2、硬盘坏道(1)逻辑坏道(2)物理坏道(3)检查坏道(4)原因(5)修复修复逻辑坏道用Scandisk检查用软件隐藏物理坏道低级格式化修复坏道 3、柱面4、扇区5、磁道6、数据区(1)数据区的内容(2)数据区根目录分…

logstash过滤器插件--translate

logstash过滤器之translate 官方手册:https://www.elastic.co/guide/en/logstash/current/plugins-filters-translate.html#plugins-filters-translate-target 功能描述 translate过滤器插件用于根据字典或查找文件过滤传入数据中的特定字段,如果输入…

【Layui】图标选择器 iconPicker 的使用

【Layui】图标选择器 iconPicker 的使用 1.项目前言2.项目目标3.项目实现3.1 图标读取3.2 图标擦除 4.效果展示4.1 简单使用4.2 参数配置4.3 使用 unicode 5.源码地址 系统:Win10 JDK:1.8.0_333 IDEA:2022.3.3 SpringBoot:2.7.6 L…

从零开始 Spring Boot 59:Hibernate 日志

从零开始 Spring Boot 59:Hibernate 日志 图源:简书 (jianshu.com) Hibernate 支持多种日志模块,本文介绍如何在 Spring Boot 中使用 Log4j2记录 Hibernate 日志。 实际上本文是我在写上篇文章时遇到的各种坑和最终解决的记录。 首先需要添加…

《黑马头条》 内容安全 feign 延迟任务精准发布

04自媒体文章-自动审核 1)自媒体文章自动审核流程 1 自媒体端发布文章后,开始审核文章 2 审核的主要是审核文章的 内容(文本内容和图片) 3 借助 第三方提供的接口审核文本 4 借助第三方提供的接口审核图片,由于图片存储到minIO中&…

C#核心知识回顾——8.ArryList、Stack栈、队列、哈希表

1.ArryList ArrayList array new ArrayList();//1.增array.Add(0);array.Add("1");array.Add(false);ArrayList arrayList new ArrayList();arrayList.Add(123);//范围增加(类似于拼接)array.AddRange(arrayList);//插入(指定位置)array.Insert(1, &qu…

coxph-基准累积风险函数

右删失数据下的coxph拟合后&#xff0c;得到回归参数和基准累积风险函数&#xff0c;其中基准累积风险函数使用breslow估计得到&#xff1a; 代码&#xff0c;只是为了说明这个问题 res.cox <- survival::coxph(survival::Surv(time, status 2) ~ X1 X2,data auxData)bh…

LLM应用的技术栈与设计模式详解

大型语言模型是构建软件的强大新原语。 但由于它们是如此新&#xff0c;并且其行为与普通计算资源如此不同&#xff0c;因此如何使用它们并不总是显而易见的。 在这篇文章中&#xff0c;我们将分享新兴 LLM 应用程序的参考架构。 它展示了我们所见过的人工智能初创公司和先进科…

AOP简介

问题1&#xff1a;AOP的作用是什么&#xff1f; 问题2&#xff1a;连接点和切入点有什么区别&#xff0c;二者谁的范围大&#xff1f; 问题3&#xff1a;请描述什么是切面&#xff1f; 1.1 AOP简介和作用【理解】 AOP(Aspect Oriented Programming)面向切面编程&#xff0c;…

Vue3----吸顶导航

安装vueuse&#xff1a; npm i vueuse/core 1. 准备吸顶导航组 2.获取滚动距离 <script setup> // vueUse 中 useScroll import { useScroll } from vueuse/core const {y} useScroll(window) </script><template><div class"app-header-sticky&…

iostat命令和vmstat命令

1、iostat命令(磁盘) 1.1、介绍 iostat是I/O statistics&#xff08;输入/输出统计&#xff09;的缩写&#xff0c;iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况&#xff0c;同时也会汇报出 CPU使用情况。同vmstat一样&#xff0c;iostat也有一…

前端基础环境搭建

前端基础环境搭建 序nvm编辑器下载问题 PostMan接口测试工具 序 毕业了第一次写博客&#xff0c;因为入职啦。浅记录下今日工作内容。 刚入职必然是需要搭建好基础的环境。需了解并配置Node.js/NVM/NPM/Git/前端编辑器/Postman等等。 nvm nvm&#xff08;node.js version ma…

数据结构--树的定义与基本术语

数据结构–树的定义与基本术语 数的基本概念 树:从树根生长&#xff0c;逐级分支 非空树 \color{purple}非空树 非空树的特性: 有且仅有一个根节点 没有后继的结点称为“叶子结点”(或终端结点) 有后继的结点称为“分支结点”(或非终端结点) 除了根节点外&#xff0c;任何一个…