Docker:Linux下搭建深度學習環境

Linux:經過Docker搭建深度學習環境

背景

 前不久朋友轉發了個連接給我,一看,是馬爸爸在疫情期間送溫暖。 全日制高校學生均可以領一臺2核4G的ECS。先領半年,快到期的時候又能夠續半年。
 真的香啊!以前買的學生機一年120大洋才1核2G!
 正好最近深度學習的課實驗不少,本身的筆記本又要幹別的事兒,就領一臺準備拿來跑數據。
 順手記錄下用Docker配置環境的方法,省得之後忘了。 python

配置:
image.pngdocker

傳送門:疫情期間領取ECSshell

Docker安裝

 首先確保本身拿到了ECS(這不是廢話麼2333),而後隨便SSH軟件連上去,putty/Xshell之類的。
 而後開始Docker的安裝。對於Docker不熟悉的同窗能夠先去了解一下,很是好用的一個工具。
 首先穩一手,升級下yum:瀏覽器

yum -y update

 Docker軟件包已經包括在默認的 CentOS-Extras 軟件源裏。因此接下來直接:bash

yum install docker

 安裝完畢。王者榮耀 Docker,啓動!框架

$ systemctl start docker

 設置一下開機啓動:運維

$ systemctl enable docker

Docker安裝完畢。工具

Deepo

 Docker Hub上搜了下比較全的深度學習框架的Image。看到了 ufoym/deepo 這個Image。學習

Deepo is a series of docker images that網站

  • allows you to quickly set up your deep learning research environment
  • supports almost all commonly used deep learning frameworks
  • supports GPU acceleration(CUDA and cuDNN included), also works in CPU-only mode
  • works on Linux CPU version, Windows and OS X

and their Dockerfile generator that

  • allows you to customize your own environment with Lego-like modules
  • automatically resolves the dependencies for you

很方便,因此就決定是他了。

 由於是ECS嘛,沒有顯卡,就不上CUDA了,直接CPU Mode。

安裝

 下載Image。

docker pull ufoym/deepo:cpu

使用

 啓動容器運行。兩種方式:
1、若是不要帶Jupyter,直接跑python文件就這樣:

docker run -it --ipc=host -v /Data/py_workspace:/data ufoym/deepo:cpu bash

 其中 -v /Data/py_workspace:/data 的意思爲:將硬盤上的 /Data/py_workspace 映射到容器內的 /data 目錄下。能夠根據本身的文件位置自行更改。
 好比我這樣設置,那麼在容器內進入 /data 目錄,即可訪問到我硬盤內 /Data/py_workspace 文件夾下的內容,如圖。

image.png

 2、也能夠帶Jupyter運行。

docker run -i -p 8888:8888  --ipc=host -v /Data/py_workspace:/data ufoym/deepo:cpu jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token=7c4a8d09ca3762af61e59520943dc26494f8941b --notebook-dir='/data'

其中 NotebookApp.token= 後面跟的一串是密碼,是 sha1 加密的。能夠隨便找個sha1在線加密網站生成一下。
-p 8888:8888 意思是將外部8888端口映射到容器8888端口。

運行以後直接瀏覽器訪問下ECS的8888端口。

image.png

讓咱們登陸。輸入密碼,注意是sha1加密後的串。

image.png

成功。

執行一下試試。

image.png

是否是很方便。不用聽風扇呼呼呼地吵了。

運維

 不帶jupyter的時候按 Ctrl + P + Q 可讓容器在後臺運行。
 若是要從新進入容器,首先查看容器id:

docker ps

而後進入容器:

docker exec -it 容器id /bin/bash

帶Jupyter的話,後臺運行我是直接nohup命令的,由於我的不是很喜歡用Jupyter,沒有怎麼研究:

nohup docker run -i -p 8888:8888  --ipc=host -v /Data/py_workspace:/data ufoym/deepo:cpu jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token=7c4a8d09ca3762af61e59520943dc26494f8941b --notebook-dir='/data' >/Data/py_jupyter.out &

好了,有須要的同窗能夠試試!

相關文章
相關標籤/搜索