实验室给我分配了一个服务器 已经装好了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 --gpus all -d -p 0.0.0.0:10789:22 -it --name=容器名称 镜像id /bin/bash
进行基础的网络安装: ping config
apt-get update
apt install net-tools # ifconfig
apt install iputils-ping # ping
取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安装成功了 而且设置好了环境变量 。
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 -gpus all -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)
部署 上传 (注意本地改变后就要上传 也可以自动上传)
运行得到结果!!!!!!!
参考文献:
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连接容器