背景: 实验室给我分配了一个服务器 已经装好了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安装成功了 而且设置好了环境变量 。
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连接的全过程
参考文献: