当前位置: 首页 > 工具软件 > Deepo > 使用案例 >

基于Deepo快速配置深度学习环境

柯建业
2023-12-01

在开始深度学习之前,需先做好一件小事,那就是配置环境,配环境的烦恼配过的都知道,话不多说,直奔主题……

在阅读本文之前需要了解:docker是什么?docker的常用命令有哪些?(当然,不了解也没有关系,按照本文所述步骤一步步来就可以不明觉厉的配好环境了hiahiahia)

ufoym/deepo是一个几乎包含所有主流深度学习框架环境的docker镜像:theano, tensorflow, sonnet, pytorch, keras, lasagne, mxnet, cntk, chainer, caffe, torch。借助该镜像,可以快速配置环境,

配置环境七步走,如下:

STEP 1:获取镜像ufoym/deepo,详情请自行百度"ufoym/deepo",然后食用。(可根据自身情况选择GPU或者CPU版本)

STEP 2:运行镜像,创建容器

sudo nvidia-docker run -it --name=容器名 -v 宿主机目录:/容器内目录 -p 自定义端口号(此处假定为23333):22 ufoym/deepo bash

运行该命令后就进入了docker中。(创建容器的命令也是在不断变化的,具体需要看官方文档,如果nvidia-docker run不能用的话,可以试试sudo docker run --gpus all -it )

其中,-v是实现目录挂载,关于目录挂载,可参考https://www.cnblogs.com/ivictor/p/4834864.html
-p是端口映射,映射成功后可以直接通过映射后的端口访问docker。

举例:假设服务器IP地址为**.**.*.***,端口映射为 -p 23333:22  -p 23334:6006  -p 23335:8888,其中8888是jupyter的默认端口,6006是tensorboard的默认端口。则可

  1. 通过**.**.*.***的23333端口可以直接访问docker,无需通过22端口进入服务器,再在服务器中进入docker
  2. 同一网段内的任意浏览器都可以通过**.**.*.***:6006来访问tensorboard(前提:已开启tensorboard服务)
  3. 同一网段内的任意浏览器都可以通过**.**.*.***:8888来访问jupyter(前提:已开启jupyter服务)

至此,已经可以使用docker开始工作了……后面的操作是为了提高使用体验。

接下来,步骤3,4,5是为了打开docker的TCP 22端口,以便通过docker的端口号直接ssh访问docker。3,4,5,6步均在docker中进行操作。如果不打开22端口,是没有办法通过映射的端口号直接登录docker的。

STEP 3:在docker内安装openssh-server。

apt-get install openssh-server

如果安装失败,运行apt-get update与apt-get upgrade,然后再次尝试安装。

STEP 4:修改配置文件

如果不把PermitRootLogin prohibit-password注释掉,会禁止root用密码登录

首先用vim /etc/ssh/sshd_config打开文件,
然后将PermitRootLogin prohibit-password用#注释掉 ,新增一行PermitRootLogin 改为yes
# 参考 https://www.cnblogs.com/miaodi/p/6718950.html

STEP 5:开启SSH服务,这样就可以通过映射后的端口直接访问docker。

service ssh restart
(或者/etc/init.d/ssh start
  或者service ssh start),这三个命令总有一个管用

STEP 6:设置root密码,输入passwd root然后回车,依照提示输入密码即可。

STEP 7:退出容器

如果用exit退出容器的话,那么在退出之后会关闭容器。TCP服务也不能用了,自然就不能直接访问docker
所以,采用快捷键Ctrl+P+Q退出容器而不关闭容器,下一次就可以直接通过映射后的端口访问docker。

 

好了,至此大功告成,欢迎批评指正。

完成以上配置之后,便可以像这样使用docker...

# 前提:在docker中开启ssh服务,即service ssh restart;docker处于开启状态,即可以通过docker ps查看到你的docker

#进入docker
ssh -p [自己设置的端口号] root@[ip地址]
#使用jupyter
在docker中开启jupyter服务,然后在本地电脑浏览器上进入网址**.**.*.***:8888

 

 
 类似资料: