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

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

在阅读本文之前需要了解: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中。

其中,-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服务)

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

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

apt-get install openssh-server

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

STEP 4:修改配置文件

首先用vim /etc/ssh/sshd_config打开文件,
然后将#PermitRootLogin prohibit-password的注释符号“#”去掉 ,将prohibit-password 改为yes

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)