在高高兴兴搞了一个云服务器决定开始学习深度学习的时候,决定自己配一个环境。在历尽千辛万苦之后,参考了众多从零的深度学习搭建方法,最终还是失败了。于是乎,我决定直接用deepo的docker镜像来帮助我快速搭建一个深度学习环境并进行jupyter的服务配置,这里我是用mobaxterm连接的云服务器。
话不多说,进入正文
docker 的安装和基本操作,参考官方文档 docker install ,按流程复制粘贴即可。
如果最后运行 docker -v ,输出了 docker 的版本就说明你已经成功地安装了小鲸鱼(docker)了!
(例如version 20.10.12, build 20.10.12-0ubuntu2~18.04.1)
或者 运行 docker run hello-world
,能输出结果,也说明成功安装了。当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载,默认标签是latest。
原本的docker不支持使用GPU,所以NVIDIA单独做了一个docker,来让docker镜像可以使用NVIDIA的gpu。这里也推荐大家跟着教程一步步走下来就可以了,nvidia-docker quickstart。
运行 nvidia-smi 命令,能输出正确信息代表驱动安装成功,如下。
ps:右上角的CUDA Version不代表已经安装cuda,而是能支持的cuda的最高版本。
这里使用镜像是deepo
可以直接通过命令:
docker pull ufoym/deepo (docker run --runtime=nvidia --rm ufoym/deepo nvidia-smi)
就可以把各种框架都下载下来。但是这样太大了,耗时太长,大家可以按需选择。
此外它还提供了jupyter notebook版的镜像:
docker pull ufoym/deepo:all-jupyter-py36-cu100
大家可以按需选择自己需要的版本ufoym/deepo - Docker Image | Docker Hub
安装好之后,通过docker images -a
命令,可以查看已经下载好的镜像。
这里我们看到ufoym/deepo镜像已经成功下载
cd /root/Documents (其中root是用户名)
mkdir workspace
之前已经下载了深度学习jupyter notebook镜像(ufoym/deepo:all-py36-jupyter-cu100)不同版本可以根据实际情况更改
启动容器:
nvidia-docker run -it -p 7777:8888 --ipc=host -v /root/workspace:/workspace --gpus all --shm-size 8G --name dl ufoym/deepo:all-py36-jupyter-cu100
这样我们就可以成功的进入容器当中,这时用ls命令,应该可以看到一个新的文件workspace就产生了!此时我们已经成功一大半了(手动狗头)
jupyter notebook --generate-config #运行完会得到配置文件的地址
/root/.jupyter/jupyter_notebook_config.py 是生成的路径
现在terminal输入ipython
然后依次输入
from notebook.auth import passwd
passwd()
复制得到的密钥(out[2]的输出),后面修改配置文件的时候会用到
用vim编辑代码段
vim /root/.jupyter/jupyter_notebook_config.py
在最后插入如下内容:
c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:49fd342fa081:b4267cdc24b271573301a7f8c84cc9927dcc3b30' #这里换成刚刚生成的内容
c.NotebookApp.port = 8888 #记得服务器开放相应端口
修改完成后保存退出
#允许root启动
jupyter notebook --allow-root
用win+R打开运行cmd
#把服务器的7777映射到本地的7777
ssh -L:7777:localhost:7777 用户名@服务器ip
然后输入服务器密码,成功连接云服务器。
在本地机器上,在浏览器中输入: http://服务器IP地址:7777,即可打开jupyter.