在开始深度学习之前,需先做好一件小事,那就是配置环境,配环境的烦恼配过的都知道,话不多说,直奔主题……
在阅读本文之前需要了解: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的默认端口。则可
接下来,步骤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。
好了,至此大功告成,欢迎批评指正。