使用docker建立深度學習環境

2021-10-06 17:05:36 字數 4069 閱讀 1100

新裝的伺服器版本為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服務的配置檔案 檔名可能不...