在服务器的docker里|在服务器的docker里 装anacond3深度学习环境的全流程超基础
?
背景: 实验室给我分配了一个服务器 已经装好了docker 和nvidi docker 。 现在我的目标是创建我自己的docker 然后在我自己的docker里装上anaconda环境。 我以前从没用过linux。所以对这一切都是迷迷茫茫不知其所以然。所以一些拙见还请不要见笑。也是整合了很多大佬的。(我是挂了VPN的,所以没有用过国内镜像,如果你发现哪里下不动东西了 可以搜搜怎么加入国内镜像源)
我的理解 docker 就是一个操作系统的模板。然后在服务器输入
docker images
文章图片
文章图片
文章图片
?
可以看到很多镜像 这些镜像就是一个又一个的模板。然后你可以使用这些模板创建自己的操作系统。使用
文章图片
文章图片
?
【在服务器的docker里|在服务器的docker里 装anacond3深度学习环境的全流程超基础】
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 updateapt-get install openssh-serverapt-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,可以修改为一个认为合适的端口号修改完毕后 按escinsert标志消失之后输入: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连接容器
?
推荐阅读
- “四大高手”为你的|“四大高手”为你的 Vue 应用程序保驾护航
- DBCHM|DBCHM -最简单、最实用的数据库文档生成工具
- 分布式|分布式ID生成器-订单号的生成(全局唯一id生成策略)
- 数据库|【分布式系列01期】常见的分布式ID生成方案浅析及大厂方案调研
- 分布式|全网最全的分布式ID生成方案解析
- Vue|Vue 项目运行完成后自动打开浏览器的方法汇总
- 关于Java错误提示之找不到或无法加载主类的问题及正确处理方法
- Pytest单元测试框架生成HTML测试报告及优化的步骤
- Java如何在PDF中添加ToolTip工具提示
- es+flask搜索小项目实现分页+高亮的示例代码