基於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中。(創建容器的命令也是在不斷變化的,具體需要看官方文檔,如果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

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章