linux下配置深度学习程序方便,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
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐