windows系统利用docker搭建linux深度学习环境总结

分为几步:
1.安装docker
2.创建linux底层容器
3.容器内安装anaconda
4.pycharm配置ssh服务器

安装docker

1.开启windows虚拟功能

进入如下:控制面板=》程序=》启用或关闭windows功能。勾选Hyper-V,并电脑重启。

windows系统利用docker搭建linux深度学习环境总结_第1张图片

2.安装docker

进入官网下载安装包,按照提示安装即可。但是装完打开后我出现了WLS2的错误。
windows系统利用docker搭建linux深度学习环境总结_第2张图片
这个是因为电脑wsl2较老或没有,解决办法就是安装wsl2

3.安装wsl2

首先打开windows虚拟监控程序平台和适用于Linux的Windows子系统

windows系统利用docker搭建linux深度学习环境总结_第3张图片
然后打开微软商店,安装linux分发版(我一般选择ubuntu),安装完成后如下
windows系统利用docker搭建linux深度学习环境总结_第4张图片
如果什么都正常,打开电脑的ubuntu后(如下),等待一会,就可以设置账户和密码了,可以跳过步骤4
windows系统利用docker搭建linux深度学习环境总结_第5张图片

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"
]

windows系统利用docker搭建linux深度学习环境总结_第6张图片

创建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

windows系统利用docker搭建linux深度学习环境总结_第7张图片
命令的具体含义单独总结

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

启动成功如下
windows系统利用docker搭建linux深度学习环境总结_第8张图片

3.修改sshd_config文件

安装vim工具

apt-get install vim

编辑sshd_config文件

vim /etc/ssh/sshd_config

windows系统利用docker搭建linux深度学习环境总结_第9张图片
重启ssh服务

service ssh restart

设置root用户密码

passwd root

windows系统利用docker搭建linux深度学习环境总结_第10张图片

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. (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

成功后如下
windows系统利用docker搭建linux深度学习环境总结_第11张图片
这里的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

windows系统利用docker搭建linux深度学习环境总结_第12张图片

3.执行sh命令,安装anaconda

cd /home
sh Anaconda3-5.3.1-Linux-x86_64.sh

windows系统利用docker搭建linux深度学习环境总结_第13张图片
按照提示安装即可

第一次安装出现了下面这个错误

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 进入如下界面

windows系统利用docker搭建linux深度学习环境总结_第14张图片
输入username,host和Port
windows系统利用docker搭建linux深度学习环境总结_第15张图片
输入密码
windows系统利用docker搭建linux深度学习环境总结_第16张图片
然后一直next,到如下界面
windows系统利用docker搭建linux深度学习环境总结_第17张图片
Inetpreter是设置解析器的路径,Sync folder是设置本地项目和服务器项目的目录。具体怎么设置见下图说明
windows系统利用docker搭建linux深度学习环境总结_第18张图片
之后一路确认即可!!!

最后,因为每次配置都很麻烦,所以可以将自己的容器提交,制作成镜像:

docker commit 51d3a76d565f 	ssh_ubuntu:1.0

未解决的问题

问题1:ssh连接

一个是就是过一段时间后服务器的ssh服务就会自动关闭,需要手动去开启,这个真的很麻烦!!!

问题2:代码同步

第二个如果在本地windows端的挂载目录上写代码,其实并不会同步到服务器中,过一段时间代码会消失。这个就是微调代码的时候会比较麻烦,但是相比于利用filezilla等去传输代码很好了。

你可能感兴趣的:(深度学习环境配置及错误总结,linux,windows,docker)