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

yi術家發表於2022-03-03

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

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

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

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

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

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

 

 

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

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

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

docker run -p 10789:22  -it -d --name="容器名稱" -v  映象名稱  /bin/bash
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

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

建立流程很長 這裡有b站小姐姐做的一個視訊可以參考。

https://www.bilibili.com/video/BV1bk4y1B7T5?from=search&seid=5835754095686451740&spm_id_from=333.337.0.0
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

 

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

 

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

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

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

啟用容器

docker run -p 10789:22  -it -d --name="容器名稱" -v  映象名稱  /bin/bash
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

        

apt-get update
apt install net-tools        # ifconfig 
apt install iputils-ping     # ping
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

        

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

https://repo.anaconda.com/archive/
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

我選的是

https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

apt-get install -y wget
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎
wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

安裝解壓程式

        

apt-get install bzip2
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

然後輸入命令 

chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎
./Anaconda3-5.3.0-Linux-x86_64.sh
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

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

conda不是啥命令 沒聽說過 。
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

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

export PATH=$PATH:/home/anaconda3/bin
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎
source ~/.bashrc
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎
也可以同時建立一個軟連線:因為bin本身就是環境變數


ln -s /root/anaconda3/bin/python /bin/anaconda3
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

 刪除自己的conda安裝包:


(base) root@60a197e8a57f:/# rm -rf /home/Anaconda3-5.3.0-Linux-x86_64.sh
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

 

然後配置自己的環境 

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

conda create -n li_3_8 python=3.8
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

 啟用建立的環境

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

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

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

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

https://pytorch.org/get-started/previous-versions/
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

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

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

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

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

ctrl +d 退出容器 

然後 docker ps -a 看容器列表

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

docker commit 容器id dock名字:標籤
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

 可以得到新的模板docker

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

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

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

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

 

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

 

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

docker run -p 10789:22  -it -d --name="容器名稱" -v  映象名稱  /bin/bash
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

2 更新apt  安裝ssh 和vim

apt-get update

apt-get install openssh-server

apt-get install vim
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

 

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 回車  (注意冒號一定要打)

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

4  建立使用者密碼 

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

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

 

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

5 :啟動ssh

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

 

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

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

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

 

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

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

 輸入剛才對應埠 10789

和剛才的密碼 在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

 修改對映路徑  就是你本地檔案要上傳伺服器 上傳到哪裡呢 ? 就是部署路徑裡 

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

萬事具備 只欠直譯器 

 

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

 點到直譯器設定 

 ssh直譯器  現有

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

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

 連線好後下一個  

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

 

點檔案 找到conda/envs/環境名/bin 裡的 python檔案 選中 確定   

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

 直譯器選這個新的直譯器  確定 

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

 

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

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

 點工具 部署 上傳

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

新建一個test  

輸入 

import torch
print(1)
在伺服器的docker裡 裝anacond3深度學習環境的全流程超基礎

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

執行得到結果!!!!!!!

全劇終 至此完成了 在伺服器新建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連線容器

相關文章