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