在伺服器的docker里 裝anacond3深度學習環境的全流程超基礎

​

 背景: 實驗室給我分配了一個伺服器 已經裝好了docker 和nvidi docker 。 現在我的目標是創建我自己的docker 然後在我自己的docker里裝上anaconda環境。 我以前從沒用過linux。所以對這一切都是迷迷茫茫不知其所以然。所以一些拙見還請不要見笑。也是整合了很多大佬的。(我是掛了VPN的,所以沒有用過中國鏡像,如果你發現哪裡下不動東西了 可以搜搜怎麼加入中國鏡像源)

我的理解 docker 就是一個作業系統的模板。然後在伺服器輸入

docker images

​

可以看到很多鏡像 這些鏡像就是一個又一個的模板。然後你可以使用這些模板創建自己的作業系統。使用

​

 

 

docker ps -a

可以看到正在運行的容器 。什麼叫做容器 ,就是根據模板(鏡像)創建的一個作業系統,不同的容器之間互不干擾罷了。

使用docker run命令可以啟用一個容器

docker run -p 10789:22  -it -d --name="容器名稱" -v  鏡像名稱  /bin/bash

之後你所有的操作就相當於在你自己的電腦里玩了 。

等等,我們還沒有創建自己的docker呢。

創建流程很長 這裡有b站小姐姐做的一個影片可以參考。

//www.bilibili.com/video/BV1bk4y1B7T5?from=search&seid=5835754095686451740&spm_id_from=333.337.0.0

我們做的就是取hub.docker.com這個網站上 找到自己喜歡的docker版本。docker版本其實就是別人寫好的一些模板,跟ppt模板一樣,我們先下下來然後自己修修改改變成自己的模板。模板有各個方向的 ,我們深度學習肯定要挑關於cuda的。點explore 搜nvidia 進入nvidia/cuda 在tag搜索自己的cuda版本  我用的是11.0-cudnn8 - runtime - ubu16.04 下圖只是示例

 

​

 

​

複製後面那個pull到伺服器窗口 就可以創建一個 docker了 。有dockers就可以啟動什麼的了 。

進入我們自己的docker 看看各個文件夾,發現啥也沒有  因為是我們自己的新電腦嘛。我們就要開始裝anaconda3了 。

啟用容器

docker run -p 10789:22  -it -d --name="容器名稱" -v  鏡像名稱  /bin/bash

進行基礎的網路安裝: ping config

        

apt-get update
apt install net-tools        # ifconfig 
apt install iputils-ping     # ping

        

然後就是裝conda了 取conda官網找自己喜歡的安裝包

//repo.anaconda.com/archive/

我選的是

//repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh

所以輸入命令 (先安裝wget)

apt-get install -y wget
wget //repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh

安裝解壓程式

        

apt-get install bzip2

找到自己的anacnoda安裝包位置  好像在home里 要不然就是root里??

然後輸入命令 

chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
./Anaconda3-5.3.0-Linux-x86_64.sh

回車,一直yes  不過vscode可裝可不裝 自己看著辦 

然後輸入conda -V 看看是不是顯示 

conda不是啥命令 沒聽說過 。

說明沒配置好環境變數 找到你的安裝目錄 。把安裝目錄下的conda所在文件夾 放到環境變數去。

        比如我的conda在home里  就是下面這句命令啦 

export PATH=$PATH:/home/anaconda3/bin
source ~/.bashrc

保存後再來   成啦!  說明conda安裝成功了 而且設置好了環境變數 。

​
也可以同時創建一個軟連接:因為bin本身就是環境變數


ln -s /root/anaconda3/bin/python /bin/anaconda3

 刪除自己的conda安裝包:


(base) root@60a197e8a57f:/# rm -rf /home/Anaconda3-5.3.0-Linux-x86_64.sh

 

然後配置自己的環境 

先創建一個  li_3_8是我自己的環境名字

conda create -n li_3_8 python=3.8

 激活創建的環境

conda activate li_3_8

​

看到本來是root 前面帶了li_3_8 說明我們在這個環境里了 

去torch官網找適配自己cuda版本的torch

//pytorch.org/get-started/previous-versions/
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

我的是上面這個版本 輸入 回車

這一步比較慢 我這篇文章都快寫完了 torch還是沒裝完。

可以搜搜換源的方法,把源換成中國源 什麼清華源什麼的  我懶得換了 去吃個飯 正好等等他。

安裝好torch了  其他的都類似。

安裝好環境 我們考慮將容器固化  我們知道模板才是永久的 容器停了就沒了  所以將容器變成模板 以後用這個帶環境的模板就好  

ctrl +d 退出容器 

然後 docker ps -a 看容器列表

​

docker commit 容器id dock名字:標籤

​

 可以得到新的模板docker

​

 如果你想繼續用剛才那個退出的容器 就 

docker start id
docker attach id

 ​

 

至此 環境安裝完畢。 後面是如何在PYcharm連接這個容器 使用此容器的環境。,

 

1 啟動容器    使用伺服器的22埠  如果你剛才也用的下面這句啟動的容器 就不用新建容器啦  start attach 進入容器即可。 主要是埠設置     (如果沒設置埠 使用我們剛才固化的那個鏡像 新建容器 )

docker run -p 10789:22  -it -d --name="容器名稱" -v  鏡像名稱  /bin/bash

2 更新apt  安裝ssh 和vim

apt-get update

apt-get install openssh-server

apt-get install vim

 

3 用vim打開配置文件並修改

vim /etc/ssh/sshd_config 打開sshd_config配置文件

0:打開文件後 按o鍵 就可以修改啦  下面會出現一個insert標誌
1. 找到PermitRootLogin prohibit-password這一行,修改為PermitRootLogin yes,允許通過ssh遠程訪問docker
2. 找到Port這一行,設置遠程連接服務的埠號, 就是剛才的22,可以修改為一個認為合適的埠號

修改完畢後 按esc  insert標誌消失   之後輸入  :wq 回車  (注意冒號一定要打)

4  創建用戶密碼 

passwd root

之後會讓兩次輸入密碼 與windows不同的是 輸入密碼是看不到的  心中有數就行

 

​

5 :啟動ssh

service ssh restart

 

到這裡 伺服器端配置完啦 。

點開我們的 pycharm   工具 部署配置 

​

 

​

點三個點​

 輸入剛才對應埠 10789

和剛才的密碼 ​

 修改映射路徑  就是你本地文件要上傳伺服器 上傳到哪裡呢 ? 就是部署路徑里 

​

萬事具備 只欠解釋器 

 

 ​

 點到解釋器設置 

 ssh解釋器  現有

​

 ​

 連接好後下一個  

​

 

點文件 找到conda/envs/環境名/bin 里的 python文件 選中 確定   

 ​

 解釋器選這個新的解釋器  確定 

​

 

 在剛才的 工具 部署配置里  選中你的 伺服器  點那個對號  

​

 點工具 部署 上傳

​

新建一個test  

輸入 

import torch
print(1)

 部署 上傳 (注意本地改變後就要上傳 也可以自動上傳)

運行得到結果!!!!!!!

全劇終 至此完成了 在伺服器新建docker 並裝環境形成鏡像 並用pycharm連接的全過程

 

參考文獻: 

Nvidia-docker 配置深度學習環境伺服器(cuda+cudnn+anaconda+python)GPU伺服器的配置_嗶哩嗶哩_bilibili

使用docker搭建深度學習環境-從零開始(上)_ambm29的部落格-CSDN部落格_docker深度學習

使用docker搭建深度學習環境-從零開始(下)_ambm29的部落格-CSDN部落格_docker搭建深度學習環境

如何在Linux伺服器上安裝Anaconda(超詳細)_あなたを待って-CSDN部落格_伺服器安裝anaconda

PyCharm連接Docker容器內部Python解析器和Jupyter_修行者_Yang的部落格-CSDN部落格_pycharm連接容器

​