只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
1064879863
16货源网 > 餐饮行业新闻资讯 > 软件开发 >  Windows下想使用Linux环境,WSL、Docker、VM应该怎么选择?


Windows下想使用Linux环境,WSL、Docker、VM应该怎么选择?

发布时间:2019-09-03 12:13:35  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【
如果只是轻度使用的话前两个都行,要是搭服务器或者想搭个集群什么的还是vm吧
Windows下想使用Linux环境,WSL、Docker、VM应该怎么选择?

如果只是轻度使用的话前两个都行,要是搭服务器或者想搭个集群什么的还是vm吧

我也不知道该用啥 -> WSL

我需要用 WSL 不支持的功能(Docker) -> WSL2 (就是个VM)

我需要用连 WSL2 都不支持的功能(CUDA) -> 用 Windows 不好吗

个人开发用的话最方便的应该是WSL 2。它最适合的是以命令行工具为主的开发流程,比如在tmux下用vim或Emacs做开发。

因为一般的vm解决方案没法充分利用显卡的性能,跑桌面Linux会很难受,所以我觉得用vm开发并没有比WSL 2有任何优势。

看个人需求,使用的频次如何?目的是什么?需要的功能有哪些?

什么是WSL?
- 从Windows10开始,Windows开始支持内置的Linux虚拟环境
- 当然一方面是打开禁锢思维,接纳Linux
- 另一方面,也可能是Windows环境下,个人使用Linux为基础的相关组件的需求也在增多,如果不作出改变,那么一个问题就是Windows上会被用户装越来越多的虚拟机,而对Windows本身来说内外交互压力也不小,系统性能甚至被影响,最终影响体验
- 为了做出一版尝试,就出现了WSL-Windows System Linux,在Windows 10上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层
- 原理:在Windows上划分出一块空间用于虚拟化Ubuntu系统,能够在Windows系统中原生运行,并且能够拥有Linux的虚拟文件系统
- 操作过程中,可能因为生疏会遇到一些问题,但是如果能最终使用起来还是会比较顺畅,就像Linux就是划出一份空间装的,能和Windows系统共生,安装应用版本建议不要过新


什么是Docker?
- Docker 的创建初衷,大概是从交付的角度出发的,它能够实现容器之间的完全隔离,容器内部是最简或者是缺省的Linux 64位系统
- 由于环境用户的隔离,能够保证对应的应用在对应的容器中稳定运行,并且启动方式简单,只须一个64位的宿主机,其余不需要特殊的配置
- 原理:依靠细粒度命名空间,做到资源用户的隔离,依靠控制组,为对应的控制组分配资源并限制资源的使用,依靠UnionFS,为 Linux 操作系统设计的用于把多个文件系统"联合"到同一个挂载点的文件系统服务
- 需要自行安装,镜像需要自行获取,根据简单的命令即可构建稳定的部署环境

什么是VM?
- 其实VM是大家在Windows环境下,使用Linux最早的工具吧,至少我是
- 能够快速地创建虚拟机,自动安装和配置初始化,通过操作界面设置网络等配置,能够简单实现Linux机器的启停
- 根据你提供的安装包,可以是简单的或者是一个标准版的操作系统,初始化一个操作系统
- 可以降低复杂性以及更灵活、敏捷地交付服务来提高IT效率
- 同样利用虚拟化技术,做好粗粒度命名空间的隔离,保证了安全性
- 但是VM有一个问题,就是付费,相对功能多但是过多,相对并不能很好地快速低成本交付
- 当然另一个替代VM的免费开源桌面虚拟化应用-VirtualBox,功能相对少一些,但是已经足够用了,又是免费开源的

根据多年实际使用经验,前前后后用过 Virtualbox 和 VMware,都还不错,部分外设可能有兼容性问题,满足日常使用,甚至各种开发都问题不大。

就成熟度来看,建议用 Virtualbox 或 VMware,WSL 和 Docker 在 Windows 下的原生支持都不久。WSL 不太熟,Docker 的话只能在某些硬件和某些版本的 Windows 下才原生支持,限制比较多。

我现在也是在 Vmware 下装 Ubuntu,在里头再用 Docker。

WSL和windows集成最好,但是没界面。

VM有界面,但是并不好用,用这个界面还不如双系统。

需要Docker的时候,不会考虑WSL和VM和,Docker解决的是另外需求。

看完了所有的回答,我选择在Linux下虚拟windows,官方都有镜像下载,没有任何盗版风险,随时可用。

https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/

都有涉及Docker用的不太多。首推WSL

如果你是想体验Linux命令行,使用bash,首推WSL。安装简单,操作简单,上手难度最低,体验也很棒。什么,想体验图形界面,讲真Linux的图形界面没啥好玩的,非要用的话可以在WSL里装个LXDE,gnome啥的再加个xrdp或vncserver然后简单体验一下,真想用图形界面就VM或双系统。

VM的话可以体验到更完整的Linux,不过图形界面会让你分心,比如安装输入法,界面美化,安装字体,各种Windows软件(通讯类)。就是虚拟机用着始终没有真机双系统爽就是了。但是这是能让你既能使用Linux桌面和完整Linux内核又能使用Windows软件的方案。

Docker的话,貌似不符合你这个需求,体验Linux为什么要用Docker,你在Windows上用Docker实际上也要用到虚拟机Hyper-V或VM,既然要用虚拟机,为啥不直接用虚拟机装个Linux?Docker主要是用来方便地部署应用环境的,在这体验Linux可能会各种不爽(Docker上跑个某Linux发行版真不如你直接去用虚拟机),然而虚拟机效率不如真机,WSL可能介于之间?

另外WSL2可能是个不错的选择,不过实际上也是用了虚拟机技术,使用WSL2你甚至可以直接在WSL2上用Docker,体验应该还不错。

我还没用过WSL2,感觉WSL就够我用了,等WSL2更成熟一些后可能会升级过去。

总之首推WSL(没有图形界面),然后VM(有图形界面效率低),然后双系统(最完整的体验),最后Docker吧

开个fast ring然后用wsl2吧,同时满足你对wsl、docker、vm的需求。

wsl可以同win的命令互操作。

看你的需求和常用的工具链吧

我是golang开发 我推荐的是docker

我已经放弃windows三四年了

放弃windows之后用了几年的ubuntu 念书的时候还好 工作之后发现没有一个用着不出问题的微信 对工作影响有点大 有时候会好的人很烦燥于是转向了macos的怀抱

基本的开发流程就是macos开发或调试 然后用docker的linux容器编译 copy到alpine执行 到目前为止 没有出现过跨操作系统时难以解决的问题(cgo除外)

以上的流程用的人也是比较多的 如果上到k8s 更是开发测试部署一条龙

强烈推荐试一试

关键你想用Linux做啥

生产环境 测试环境建议搞docker 不用装Linux镜像 直接装服务镜像就行 省空间

要是自己学习的话 建议用virtual box 兼容性比vmware好 我觉得vmware就图形运算比virtual box好 其他没啥区别 咱又用不到商业版本 你要是大规模商业使用建议买现成的解决方案

win10的hyper我觉得太难用了 性能还这么差 还把我电脑搞死机好几次 WSL我没用过 不评论

我自己的话 电脑上装的就是Linux 我用KVM装win7

首先声明,我是WSL 用户。并且在团队内不停安利这个东西。Docker 还没有尝试过

作为开发,我们经常是使用window写完代码,然后跑到Linux上去运行。这么些年了,好像也没什么问题。

我是什么时候决定要在Linux开发进行到底的呢。

应该是window的文件管理系统让我很不爽。一般来说,现在的window笔记本买来都会是一个固态盘作为系统盘,再送一个机械盘作为存储。所以呀,我眼看c盘越来越大,而机械盘却一直空闲,那我得整理吧。这个整理又不是简简单单的文件移动,有些软件的存储路径也是要跟着改的。这样就很烦

emmm....好像没什么关系和问题。但这真的就是我切换到Linux的初衷

一开始,尝试用VM虚拟一个。深度使用后发现,在VM和window界面切换之间,太累了。尤其是工作忙的时候,同事用微信发来一个文件,我还得给粘贴到VM里才能读取。你正写着代码呢,同事突然来短信了,还得切回window,回复信息。遂放弃

那就装双系统吧,也算是铁了心了,将Linux使用到底。但是最终还是被Linux糟糕的软件生态劝退,用过ubuntu、国产深度,最终还是放弃

有天同事说,window自带的Linux挺好用啊(其实只是他需求简单,所以觉得好用),我就去安装试了试。

装完WSL,配合一个electron开发terminal工具。嘿!别说,还真的就像是Linux的感觉,ssh 远程连接啦、apt安装啦. 实话说,开始我就是为了找一个类似于Linux下或者是Mac下一样的终端工具,为了方便ssh服务器。也没打算真的开发写代码

今年上半年微软的Vscode不是推出了远程开发功能嘛,同时也升级了WSL2。也就是借此机会,我才逐渐把idea放弃,逐渐的使用vscode进行日常代码的编辑。所以我就能在Linux写代码,Linux下调试代码,最终Linux运行代码

所以该怎么向你推荐呢?还是看你具体需求吧。我司有个测试小哥,写自动化测试。天天苦于电脑配置太低,开启的vm虚拟机里,简直没法跑脚本。嚷嚷着要换电脑。docker和wsl相似之处好像都是基于hyper进行虚拟化管理(不太懂就不多说)

而且我相信你不论选择那一种方式,只谈论技术的话其实没太大区别,但是再借助现有工具的前提下配合使用,每种选择所带来的体验就不一样了

windows下使用linux环境首选是VMware-workstation能够比较全面的使用linux还能模拟一些基本的网络场景,但是电脑24小时开机比较浪费,对本地电脑性能要求比较高,特别是内存容量和硬盘的速度。一般人用就在网上找些免费的linux服务就好了,基本是免费试用。

免费Jupyter互交开发测试生产环境python开发云服务免费版 - 互联网技术栈免费linux服务器开发环境java+php+python+go带数据库版 - 互联网技术栈

根据你的提问,如果你想用命令行,首推wsl,次选vm.如果想用图形界面推荐vm

Wsl安装简单,vm更接近实际linux体验

win10自带的hyperv虚拟机就很好用,比vmware workstation好用

Hi,题主,

目前而言,主要要看你的目的是什么。

如果你的目的是,学习 Linux ,那么 VM 是最适合你的,因为 VM 的虚拟化水平足够高,可以满足你折腾底层的网络、硬件等基础设施。

如果你的目的是,开发一个软件,那么 WSL 、Docker 都可以考虑

接下来的问题是,如何选择 WSL 和 Docker 呢?

取决于你具体的开发业务需求,举个例子

如果你有将软件打包为一个 Docker 镜像的需求,那么你就需要安装 Docker 。如果没有的话, WSL 可能会更适合你。目前 WSL 的各种支持是比较好的,比如 VSCode 还针对 WSL 提供了专门的 remote 插件,让你可以在 WSL 内部唤起 VSCode。

关于 WSL ,我的专栏下有一些文章,你有兴趣可以看看:

Linux中国:如何在 Windows 10 上开启 WSL 之旅Linux中国:在 Windows 中运行 Linux:WSL 2 使用入门Linux中国:如何像 Linux 专家那样使用 WSL

希望这些文章可以帮到你。

如果你想要了解更多信息,也可以关于我的知乎号。

责任编辑:
热门阅读排行
© 16货源网 1064879863