分为几步:
1.安装docker
2.创建linux底层容器
3.容器内安装anaconda
4.pycharm配置ssh服务器
安装docker
1.开启windows虚拟功能
进入如下:控制面板=》程序=》启用或关闭windows功能。勾选Hyper-V,并电脑重启。
2.安装docker
进入官网下载安装包,按照提示安装即可。但是装完打开后我出现了WLS2的错误。
这个是因为电脑wsl2较老或没有,解决办法就是安装wsl2
3.安装wsl2
首先打开windows虚拟监控程序平台和适用于Linux的Windows子系统
然后打开微软商店,安装linux分发版(我一般选择ubuntu),安装完成后如下
如果什么都正常,打开电脑的ubuntu后(如下),等待一会,就可以设置账户和密码了,可以跳过步骤4
4.更新WSL内核
但是我的出现了如下错误
Installing, this may take a few minutes… WslRegisterDistribution failed with error: 0x800701bc Error: 0x800701bc WSL 2 ??? https://aka.ms/wsl2kernel Press any key to continue…
这是由于WSL从1升级到2,内核没有更新导致的。
下载WSL2内核并安装即可,链接如下
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
5.更换docker源
如果docker pull太慢,在docker的engine中替换增加如下内容:
"registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn" ] 或者试试 "registry-mirrors": ["https://yxzrazem.mirror.aliyuncs.com"]
创建Linux底层容器
1.拉取ubuntu镜像
docker pull ubuntu
默认拉取最新的
2.查看镜像
docker images
3.创建容器
docker run --name ssh_ubuntu -t -i -d -p 3316:22 -v E:\DataSet:/home/DataSet -v E:\Project:/home/Project ubuntu
命令的具体含义单独总结
4.进入容器
docker exec -it 容器ID bash
安装ssh服务
1.安装依赖
# 更新apt-get apt-get update # 安装ssh apt-get install openssh-client apt-get install openssh-server
2.启动ssh服务
/etc/init.d/ssh start
查看ssh服务是否启动
ps -e|grep ssh
启动成功如下
3.修改sshd_config文件
安装vim工具
apt-get install vim
编辑sshd_config文件
vim /etc/ssh/sshd_config
重启ssh服务
service ssh restart
设置root用户密码
passwd root
ssh连接测试
1.错误
如果你不是第一次使用这个容器,可能出现下面的错误
nothing to commit, working tree clean @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:3TUqLv4nWCtUAXvMFo1gMk5UDkHm8oPszTLNeQJz4nM. Please contact your system administrator. Add correct host key in /c/Users/Administrator/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /c/Users/Administrator/.ssh/known_hosts:2 ECDSA host key for IP地址 has changed and you have requested strict checking. Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. [41mFATAL[49m Something's wrong. Maybe you can find the solution here: [4mhttps://hexo.io/docs/troubleshooting.html[24m [33mError: Spawn failed[39m [33m at ChildProcess.<anonymous> (D:\Myblog\blog\node_modules\hexo-util\lib\spawn.js:51:21)[39m [33m at ChildProcess.emit (events.js:315:20)[39m [33m at ChildProcess.cp.emit (D:\Myblog\blog\node_modules\cross-spawn\lib\enoent.js:34:29)[39m [33m at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)[39m
解决办法:进入用户目录下,将.ssh文件夹删除
2.连接
ssh root@localhost -p 3316
成功后如下
这里的DataSet和Project就是挂载目录,方便存放数据和代码
至此,底层容器算是安装完成了,进行下一步,在底层容器中安装anaconda
安装anaconda
注意,这里是在虚拟linux环境中安装。
1.下载linux系统的anaconda
下载网址(清华大学镜像开源镜像):https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
本身我电脑是64位,因此下载的是Anaconda3-5.3.1-Linux-x86_64.sh
2.安装anaconda
首先将安装包复制到linux系统的/home目录下:进入下载Anaconda的文件夹下
docker cp Anaconda3-5.3.1-Linux-x86_64.sh 容器ID:linux系统目录
假如容器ID为51d3a76d565f,复制到linux中的/home目录下
docker cp Anaconda3-5.3.1-Linux-x86_64.sh 51d3a76d565f:/home
3.执行sh命令,安装anaconda
cd /home sh Anaconda3-5.3.1-Linux-x86_64.sh
按照提示安装即可
第一次安装出现了下面这个错误
4 安装错误
PREFIX=/home/anaconda3 Anaconda3-5.3.1-Linux-x86_64.sh: 353: bunzip2: not found tar: This does not look like a tar archive tar: Exiting with failure status due to previous errors
这是由于没有bunzip2,安装即可
apt-get install -y bzip2
5 环境错误
安装完后出现错误如下
-bash: conda: command not found
需要我们手动配置一下环境
首先打开~/.bashrc
vim ~/.bashrc
在最后添加一行
export PATH=~你的anaconda3安装目录/bin:$PATH
比如安装时的目录时/home/anaconda3
export PATH=~/home/anaconda3/bin:$PATH
最后激活环境变量
source ~/.bashrc
pycharm配置ssh服务器
File=>Settings=>Project=>Python Interpreter=>Add Interpreter=>On SSH 进入如下界面
输入username,host和Port
输入密码
然后一直next,到如下界面
Inetpreter是设置解析器的路径,Sync folder是设置本地项目和服务器项目的目录。具体怎么设置见下图说明
之后一路确认即可!!!
最后,因为每次配置都很麻烦,所以可以将自己的容器提交,制作成镜像:
docker commit 51d3a76d565f ssh_ubuntu:1.0
未解决的问题
问题1:ssh连接
一个是就是过一段时间后服务器的ssh服务就会自动关闭,需要手动去开启,这个真的很麻烦!!!
问题2:代码同步
第二个如果在本地windows端的挂载目录上写代码,其实并不会同步到服务器中,过一段时间代码会消失。这个就是微调代码的时候会比较麻烦,但是相比于利用filezilla等去传输代码很好了。