在服務器的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站小姐姐做的一個視頻可以參考。

https://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官網找自己喜歡的安裝包

https://repo.anaconda.com/archive/

我選的是

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

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

apt-get install -y wget
wget https://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

https://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連接容器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM