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等去传输代码很好了。

相关文章
|
10天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
141 55
|
8天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
121 78
|
20天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
109 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
11天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
45 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
17天前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
38 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
7天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
57 13
|
21天前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习的果蔬识别系统实现
果蔬识别系统,主要开发语言为Python,基于TensorFlow搭建ResNet卷积神经网络算法模型,通过对12种常见的果蔬('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜')图像数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django框架搭建Web网页端可视化操作界面,以下为项目实现介绍。
34 4
基于Python深度学习的果蔬识别系统实现
|
17天前
|
自然语言处理 安全 Java
Nexpose 7.0.1 for Linux & Windows - 漏洞扫描
Nexpose 7.0.1 for Linux & Windows - 漏洞扫描
38 6
|
20天前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
24天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
56 3