新裝的伺服器版本為ubuntu18.04.3,裝的cuda版本10.2,發現tf現在並不支援,tf對於cuda支援比較嚴格具體可以檢視
tf支援的cuda版本
cuda的作業系統要求
所以通過docker,省去更換系統的麻煩。
docker部署深度學習環境,是不需要宿主機安裝cuda的,只需要宿主機安裝nvidia驅動即可。
sudo
mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
選擇合適的源 清華大學開源軟體映象站,複製到上面的檔案中。
docker ps -a # 檢視目前的container
docker run --gpus all nvidia/cuda:10.0-base nvidia-smi # 使用所有gpu,測試,第一次執行會拉取cuda10.0base的映象
docker exec -it cuda1 /bin/bash # 進入容器
uname -a # 檢視系統版本
exit
sudo /usr/local/cuda-10.2/bin/cuda-uninstaller # 解除安裝10.2的cuda,不知道主機的cuda是否會有影響,這裡先解除安裝了
會跳出跟安裝介面類似的選擇框,全選後刪除
選擇合適版本的cuda容器 nvidia/cuda
docker pull nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04 # 拉取合適的映象 映象分為三種:base runtime devel
# 建立乙個容器 後台執行 需要指定使用gpu
# 可選 --privileged=true獲取使用硬體的許可權 --restart=on-failure 設定容器隨docker自動啟動
# -v /home/docker-common-dir:/home/common-dir 將宿主機的/home/docker-common-dir對映到容器的/home/common-dir
docker run -dit -p2345:22 --name=cuda1 --gpus all -h=227_vm nvidia/cuda:10.0-cudnn7-runtime-ubuntu18.04
-p2345:22
是將宿主機的2345埠對映到容器的22埠gpus all
選擇全部的gpu,可以'"device=1,2"'
指定gpu
進入容器
docker exec -it cuda1 /bin/bash
更新apt
apt-get update
apt-get
install vim
# 更換apt源,與主機更換源一樣
cp /etc/apt/sources.list /etc/apt/sources.list.bak
rm /etc/apt/sources.list
vim /etc/apt/sources.list
安裝ssh
apt-get update
apt-get
install openssh-server
vim /etc/ssh/sshd_config
把permitrootlogin prohibit-password
修改為permitrootlogin yes
設定密碼
passwd root
如果是宿主機ubuntu18.04,安裝ssh服務應該會自行啟動並且已經加入自啟項,但是在容器內安裝則不會自動啟動,而且一般設定自啟項的方法對docker容器不起作用 ,需要按照如下方法設定啟動指令碼
啟動ssh服務,此時可以通過ssh://root:密碼@宿主機ip -p2345
連線容器。
service
ssh start
建立啟動指令碼
cd /home
vim startup.sh
輸入指令碼內容,就是在之前/bin/bash
基礎上再加乙個啟動ssh
#!/bin/bash
service
ssh start
/bin/bash
/bin/bash
的作用是保持docker容器的後台執行,使用-dit引數的時候會附加執行這個命令,但是當設定了啟動指令碼後就不會附加執行了,需要手動執行。
附加執行許可權
chmod 777 startup.sh
以下是常用的包庫作用
vim強大的linux文字編輯庫
openssh-server
ssh遠端連線庫
net-tools
包含ifconfig,netstat等指令
iputils-ping
包含ping指令
wget
curl
網路請求指令
git版本控制
bzip2
conda的依賴
iptables
包過濾防火牆,可以控制**策略
command-not-found
在你輸入乙個未安裝的指令時提示安裝
如果有編碼問題,docker容器內出現無法輸入中文,檢視中文字元出現亂碼情況,解決方法:在啟動指令碼中加入更換編碼指令
vim /etc/profile
export lang=c.utf-8 # 加上此行並儲存
將我們對容器的設定儲存為映象,方便以後使用
docker commit -m "一些說明" -a "作者" cuda1 cuda-base:1.0
以上就是用docker建立深度學習環境的過程
參考並特別感謝! 使用docker搭建實驗室共享gpu伺服器
docker容器網路配置
Docker配置Pytorch深度學習環境
docker pull pytorch pytorch 1.9.1 cuda11.1 cudnn8 devel docker images docker run it v home cenjw dataset home data v home cenjw kt home ktmodel gpus a...
Linux 通過Docker搭建深度學習環境
從上面拉取需要的映象,這裡以pytorch為例,其中tags對該映象有說明,根據需要拉取所需的映象,我拉取了pytorch pytorch這個映象,見下圖 建立容器有兩種方式 一 如果不要帶jupyter,直接跑python檔案就這樣 yi sceale gpu001 docker run it i...
深度學習 Pycharm中使用docker伺服器
1.pycharm pro 專業版 pycharm ce 社群版沒有這個功能 2.安裝好docekr服務的docker伺服器 可以是遠端伺服器,可以是本地 3.docker 伺服器上有準備好環境的容器 4.pycharm 必須root使用者或者sudo開啟 修改docker服務的配置檔案 檔名可能不...