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

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

分为几步:

1.安装docker

2.创建linux底层容器

3.容器内安装anaconda

4.pycharm配置ssh服务器

安装docker

1.开启windows虚拟功能

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

45a5fb9d99b04968baeabe8f4d22d337.png

2.安装docker

进入官网下载安装包,按照提示安装即可。但是装完打开后我出现了WLS2的错误。

be305d263f47490a9d3f0b0af80ecbf8.png这个是因为电脑wsl2较老或没有,解决办法就是安装wsl2

3.安装wsl2

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

715c0158beec47d38bc8514cf08d2895.png

然后打开微软商店,安装linux分发版(我一般选择ubuntu),安装完成后如下


62aa4613c4204c0faea629f4182afafd.png

如果什么都正常,打开电脑的ubuntu后(如下),等待一会,就可以设置账户和密码了,可以跳过步骤4

c8de57387d2f4b59835e7491ac66f3f3.png

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

5103090926fb4b53912c88431d17fb03.png

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

b40b390b77554c7b90da58714acc3487.png

命令的具体含义单独总结

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

启动成功如下

3b884e10dcbb4f8b92d8f87321268c36.png

3.修改sshd_config文件

安装vim工具

apt-get install vim

编辑sshd_config文件

vim /etc/ssh/sshd_config

75e7a05abf974a638d1b138366488dde.png

重启ssh服务

service ssh restart

设置root用户密码

passwd root

69b56fc646da488d8e794e9f1d6d57de.png

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

成功后如下

60ac1639447840108420818aa81836ad.png

这里的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

03cc86c8ee7e44dcac1b845830ed3ba6.png

3.执行sh命令,安装anaconda

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

2dbafd563ab64454ac9c35850599ee0f.png按照提示安装即可

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

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

ced4a6ee99de4216b1336f5d35ab74f9.png

输入username,host和Port

57efe2ab66964de1bd987e22f108bc69.png

输入密码

490d0bdc76c94727b14ee1f24e27cbf5.png然后一直next,到如下界面


6e612aab0598436f8950d32231755d46.png

Inetpreter是设置解析器的路径,Sync folder是设置本地项目和服务器项目的目录。具体怎么设置见下图说明

b14c646adbed42e9bb96893864476270.png

之后一路确认即可!!!

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

docker commit 51d3a76d565f  ssh_ubuntu:1.0

未解决的问题

问题1:ssh连接

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

问题2:代码同步

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

相关文章
|
1天前
|
架构师 Linux Shell
Linux环境下要想事半功倍,少不了这4个技巧!
Linux环境下要想事半功倍,少不了这4个技巧!
|
3天前
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
|
1天前
|
网络协议 Ubuntu Linux
会Linux系统上配IPv6地址的网工,那真是老6了!
会Linux系统上配IPv6地址的网工,那真是老6了!
|
1天前
|
Linux 虚拟化 Windows
Linux、Windows上还不会端口映射的网工,请低调看过来!
Linux、Windows上还不会端口映射的网工,请低调看过来!
|
2天前
|
机器学习/深度学习 Linux Shell
超详细的Linux-Conda环境安装教程
超详细的Linux-Conda环境安装教程
|
3天前
|
开发框架 Unix Linux
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
LangChain 构建问题之在Unix/Linux系统上设置OpenAI API密钥如何解决
12 0
|
3天前
|
Oracle Java 关系型数据库
简单记录在Linux上安装JDK环境的步骤,以及解决运行Java程序时出现Error Could not find or load main class XXX问题
本文记录了在Linux系统上安装JDK环境的步骤,并提供了解决运行Java程序时出现的"Error Could not find or load main class XXX"问题的方案,主要是通过重新配置和刷新JDK环境变量来解决。
12 0
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的自适应神经网络:原理与应用
【8月更文挑战第14天】在深度学习领域,自适应神经网络作为一种新兴技术,正逐渐改变我们处理数据和解决问题的方式。这种网络通过动态调整其结构和参数来适应输入数据的分布和特征,从而在无需人工干预的情况下实现最优性能。本文将深入探讨自适应神经网络的工作原理、关键技术及其在多个领域的实际应用,旨在为读者提供一个全面的视角,理解这一技术如何推动深度学习向更高效、更智能的方向发展。
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】Python之人工智能应用篇——音频生成技术
音频生成是指根据所输入的数据合成对应的声音波形的过程,主要包括根据文本合成语音(text-to-speech)、进行不同语言之间的语音转换、根据视觉内容(图像或视频)进行语音描述,以及生成旋律、音乐等。它涵盖了声音结构中的音素、音节、音位、语素等基本单位的预测和组合,通过频谱逼近或波形逼近的合成策略来实现音频的生成。 音频生成技术的发展主要依赖于深度学习模型,如循环神经网络(RNN)、长短时记忆网络(LSTM)、Transformer等。这些模型通过学习大量的音频数据,能够自动生成与人类发音相似甚至超越人类水平的音频内容。近年来,随着大规模预训练模型的流行,如GPT系列模型、BERT、T5等,
11 7
【深度学习】Python之人工智能应用篇——音频生成技术
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
【深度学习】探讨最新的深度学习算法、模型创新以及在图像识别、自然语言处理等领域的应用进展
深度学习作为人工智能领域的重要分支,近年来在算法、模型以及应用领域都取得了显著的进展。以下将探讨最新的深度学习算法与模型创新,以及它们在图像识别、自然语言处理(NLP)等领域的应用进展。
12 6