当前位置:首页 > 虚拟机 > 正文

vm虚拟机和docker有什么区别

壹、windows下想使用linux环境,wsl、docker、vm应该怎么选择?

如果想在Windows环境中使用Linux环境,主要有三个选择:WSL1、WSL2/Docker和虚拟机(VM)。 WSL1通过Windows内核模拟系统接口。 虽然大多数Linux应用程序可以运行,但Docker等内核限的应用程序无法正常运行。 同时,WSL1与Windows共享文件系统和网络,有时会带来不便。
WSL2和Docker都基于Hyper-V技术。 WSL2是一个轻量级的Hyper-V虚拟机。 当DockerforWindows运行Linux镜像时,会安装并运行Linux虚拟机,并出现Hyper-V管理工具。 因此,在WSL2、Docker还是VM之间进行选择实际上取决于您选择哪种虚拟机软件,除非某个特定软件在WSL1上运行良好。
需要注意的是,从18.02版本开始,Windows版本的DockerDesktop采用了Windows容器模式,通过内置的Linux内核运行Linux容器,无需额外安装和运行LinuxVM。 具体作参见方教程。
特别说明,文中提到的slap旨在提醒读者确保对技术信息的准确理解和验证。 简单的问题和不正确的信息无法提供有效的帮助。 建议采取切实措施核实信息的真实性。

贰、如何看待Windows原生支Docker

Docker和VM的主要区别在于,一个是作系统级虚拟化,另一个是硬件级虚拟化。 因此,Docker本身可以在VM上运行。 你不能只在Windows上安装一个虚拟机,然后运行Docker,就说Docker支Windows。 为了让docker能够运行在虚拟机上,docker专门开发了DockerToolbox和docker-machine。 它们的核心是通过虚拟机运行docker,这只是简化了用户的中间部署和配置过程。 对于这个测试版本,还需要进行更多的优化工作。 作者也提交了试用申请,然后进入了漫的等待名单,但我猜测这个版本的改进主要体现在以下几个方面:通过使用轻量级的Linux发行版,这使得VM更小,部署和安装更快。 Alpinelinux是一个非常轻量级的版本,docker也计划使用alpine作为默认的基础镜像。
本机工具包支。 之前在非linux下运行时,我们需要使用MINGW之类的工具来模拟shell。 这次Beta的发布,无疑强化了这方面,支了原生态秩序。
更好的网络支。 Docker的网络系统可以集成到Mac和Windows的原生网络系统中,方便用户配置。
更好地适应系统的沙箱。 OSX和Windows本身都支沙箱,可以在这方面进行加强。
那么为什么原始的Windows和Mac这么难支呢?这必须基于docker的基本原理:
CGroup技术,用于控CPU、内存、网络等资源约束?。 它需要内核支,目前只有Linux支比较好。