分为几步:
1.安装docker
2.创建linux底层容器
3.容器内安装anaconda
4.pycharm配置ssh服务器
进入如下:控制面板=》程序=》启用或关闭windows功能。勾选Hyper-V,并电脑重启。
进入官网下载安装包,按照提示安装即可。但是装完打开后我出现了WLS2的错误。
这个是因为电脑wsl2较老或没有,解决办法就是安装wsl2
首先打开windows虚拟监控程序平台和适用于Linux的Windows子系统
然后打开微软商店,安装linux分发版(我一般选择ubuntu),安装完成后如下
如果什么都正常,打开电脑的ubuntu后(如下),等待一会,就可以设置账户和密码了,可以跳过步骤4
但是我的出现了如下错误
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
如果docker pull太慢,在docker的engine中替换增加如下内容:
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
]
docker pull ubuntu
默认拉取最新的
docker images
docker run --name ssh_ubuntu -t -i -d -p 3316:22 -v E:\DataSet:/home/DataSet -v E:\Project:/home/Project ubuntu
docker exec -it 容器ID bash
# 更新apt-get
apt-get update
# 安装ssh
apt-get install openssh-client
apt-get install openssh-server
/etc/init.d/ssh start
查看ssh服务是否启动
ps -e|grep ssh
安装vim工具
apt-get install vim
编辑sshd_config文件
vim /etc/ssh/sshd_config
service ssh restart
设置root用户密码
passwd root
如果你不是第一次使用这个容器,可能出现下面的错误
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. (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文件夹删除
ssh root@localhost -p 3316
成功后如下
这里的DataSet和Project就是挂载目录,方便存放数据和代码
至此,底层容器算是安装完成了,进行下一步,在底层容器中安装anaconda
注意,这里是在虚拟linux环境中安装。
下载网址(清华大学镜像开源镜像):https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
本身我电脑是64位,因此下载的是Anaconda3-5.3.1-Linux-x86_64.sh
首先将安装包复制到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
cd /home
sh Anaconda3-5.3.1-Linux-x86_64.sh
第一次安装出现了下面这个错误
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
安装完后出现错误如下
-bash: conda: command not found
需要我们手动配置一下环境
首先打开~/.bashrc
vim ~/.bashrc
在最后添加一行
export PATH=~你的anaconda3安装目录/bin:$PATH
比如安装时的目录时/home/anaconda3
export PATH=~/home/anaconda3/bin:$PATH
最后激活环境变量
source ~/.bashrc
File=>Settings=>Project=>Python Interpreter=>Add Interpreter=>On SSH 进入如下界面
输入username,host和Port
输入密码
然后一直next,到如下界面
Inetpreter是设置解析器的路径,Sync folder是设置本地项目和服务器项目的目录。具体怎么设置见下图说明
之后一路确认即可!!!
最后,因为每次配置都很麻烦,所以可以将自己的容器提交,制作成镜像:
docker commit 51d3a76d565f ssh_ubuntu:1.0
一个是就是过一段时间后服务器的ssh服务就会自动关闭,需要手动去开启,这个真的很麻烦!!!
第二个如果在本地windows端的挂载目录上写代码,其实并不会同步到服务器中,过一段时间代码会消失。这个就是微调代码的时候会比较麻烦,但是相比于利用filezilla等去传输代码很好了。