深度學習ubuntu16.04+tensorflow+gpu+CUDA8.0環境配置--------------nvidia-docker2安裝
1.首先安裝docker,這個沒有什麼問題
curl -sSL https://get.daocloud.io/docker | sh
2.安裝完成之後檢視docker版本及其他資訊
sudo docker version
注意:
在此處和以後的位置執行dockers命令的時候都需要加上sudo,否則會提示許可權問題,是因為我們在安裝docker的時候沒有添加當前使用者到dockers組。
注意下圖版本應該是18.05.0-ce,我們在安裝nvidia-docker 的時候會遇到版本問題
3.一般教程現在通常會執行一個hello-world來檢視docker效果,但是我們先獲取docker加速,這樣的話,速度會快很多,不然會遇到很多因為網速的問題,而拉取映象失敗的情況。將以下配置資訊直接複製在終端,會自動寫入配置檔案中。
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://oyukeh0j.mirror.aliyuncs.com"]
}
EOF
然後再用下面的命令重啟docker服務。
sudo /etc/init.d/docker restart
4.拉取並執行映象hello-world
sudo docker pull hello-world
sudo docker run hello-world
小結:docker的安裝和測試就完成了,但是需要構造一個gpu加速的深度學習docker容器,基本上是想到安裝nvidia-docker,當然我的意思是你的是nvidia的顯示卡才行,中間還包含了一些檢測顯示卡資訊的操作。一開始在安裝nvidia-docker2的時候遇到了一些問題,由於不熟悉,所以一直沒有整明白,放棄安裝nvidia-docker2的版本,直接裝了版本1,這個完全沒問題。但是不知道版本1會不會對其他的新版本不支援,總之後來又重新裝上了nvidia-docker2。
5.安裝nvidia-docker2版本。
官方教程資訊
當然一開始本來就是不懂,看到安裝的命令就直接安裝,然後遇到定位不到包的資訊時,再仔細看的時候才知道需要新增repository。
sudo apt-get install -y nvidia-docker2
直接在終端上輸入以下,新增repository。
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
這個時候就按照教程一步一步來打算用apt-get方式獲取,再重新載入docker daemon configuration。注意有說到在安裝docker2的時候會覆蓋以前有的配置檔案,當然現在什麼是配置資訊,我肯定是不知道的。
sudo apt-get install -y nvidia-docker2
然而,又遇到了問題.
這個是docker-ce的版本需要為18.03.1而我們的docker版本是18.05.0。
看下直接安裝是不行的。
解決的辦法是解除安裝原來的docker-ce,安裝相應的版本。最後檢視一下安裝版本情況。中間可能還有寫其他的依賴需要解除安裝和安裝。但是照著這個想法來就行。
重新安裝,發現ok,不過裡面的一些選項不太懂,所以直接以預設的方式確認了。可能後面因為這個出了點問題也不知道。
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
6.嘗試執行檢測nvidia-docker2是否正常,通常別人的教程在這個時候就結束了沒有問題,結果我又出問題了,我能說什麼。
查了一下 是nvidia run time沒有註冊,註冊,這麼高大的東西,一開始當然不懂,別人教程的時候就不出這個問題好嗎。
還是前面提到過的配置檔案,應該是被寫壞了,當時寫了一個加速的配置進去,結果配置檔案裡就只有那個加速的。將以下內容新增到配置檔案中,為了不出什麼問題,我直接把加速給刪了。
{
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
重啟配置檔案,ok了。
再檢視顯示卡資訊正常。
.如果一切都不出問題,總的就是如其他教程那樣幾個命令步驟下來就行,但是我怎麼就出現了問題呢?怎麼就別人都不會出現問題的地方出問題呢?對Linux不是很熟悉的我,出了這個那個問題,出問題的原因不一樣,網上各種教程方法也不一定剛好解決,結果就全亂了,多少次我最想做的就是重灌系統。