如果Docker在Windows上本地运行,那么为什么需要Hyper-V

虎熊:

如果Docker社区在Windows上本地运行,那么为什么需要Hyper-v?IE,原生并不意味着Docker-Engine可以在Windows上运行指令?在我看来,它仍然可以启动Linux VM并在其中运行。

对我来说,似乎docker-toolbox使用运行Linux的oracle hyper-visor,而Docker社区使用运行Linux的Hyper-V。我忽略了另一个重要区别吗?

这样对吗?我是否理解“本地”一词不对,是码头工人滥用了该词,还是我缺少其他方面?

我问的原因是因为我注意到您没有在社区版中使用Docker计算机,而且我想知道为什么。docker-machine是可以在Windows上正常运行的东西,而Docker Engine却不能吗?我认为docker这个词很重,在这种情况下可能会引起混乱:)

提前致谢!

BMitch:

Docker对Windows的支持具有多种变体:

  1. 包含Docker Machine的Docker Toolbox,它将在VirtualBox内部启动boot2docker映像。这些是在VM内运行Linux内核的Linux容器。最初,这是Windows用户的唯一选择。

  2. 适用于Windows的Docker使用Hyper-V运行基于LinuxKit的Moby VM,以运行Linux映像。LinuxKit提供了一个基于容器的Linux OS,并且进行了一些集成以使最终用户看起来不像VM,例如,您可以使用127.0.0.1代替VirtualBox VM的IP。如果您有可用的Hyper-V,并且希望在Windows上运行Linux容器,则这是首选。

  3. Windows Server容器在同一主机OS上运行Windows二进制文件,类似于Linux OS上的Linux容器不需要VM的方式。

  4. Hyper-V容器在单独的VM内运行Windows二进制文件,以实现额外的隔离。

您可以在Microsoft docs中阅读有关后两个选项的更多信息

需要注意的重要一点是,当您在受支持的服务器(例如2016)上安装Docker for Windows时,您可以选择2、3和4。对于Linux和Windows容器,设置开关会影响所有正在运行的容器和命令。在Windows Server容器和Hyper-V容器之间,命令行--isolation有一个选项docker run因此,我相信即使您只想要选项3,也需要具有Hyper-V支持才能涵盖2和4。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么VirtualBox或VMware无法在Windows 10上启用Hyper-V的情况下运行

为什么需要Hyper-V?

Hyper-V似乎可以在主机OS上运行,那么为什么将其视为本机(类型1)虚拟机管理程序?

Ubuntu 上的 Docker 是否需要 Hyper-V?

Windows中的docker是否需要启用Hyper-V?

在 Windows 10 Hyper-V 来宾中运行 docker

来宾上的Windows 8 Hyper-v运行脚本

无法在Windows 10上找到Hyper V

在 Node.js 中,如果 v8 运行您的 JavaScript,那么 Node.js Api 由什么运行?

在Hyper-V上运行的Windows 10 VM的安全登录选项

运行Windows 10 Pro的Surface Pro 2上的Hyper-V网络问题

为什么我的Windows 8 Pro Hyper-V来宾机没有互联网?

在Hyper-V中手动删除MobyLinuxVM后,Windows 10上的Docker无法启动

在Hyper-V上运行时,VPN终止开关

Windows 8 Hyper-V网络无法在主机上运行

Hyper-V Windows 8.1

为什么Hyper-V在增强的会话模式下崩溃?

为什么Hyper-V必须“支持”来宾OS?

无法在Windows 10和在Hyper-v上创建的本地托管的Ubuntu VM之间打开端口

无法在 Windows 10 和 Hyper-v 上创建的本地托管 Ubuntu VM 之间打开端口

如何在Windows 7上启用Hyper-V?

无法在Windows 10教育版上启用Hyper-V

Windows 10上的Hyper-V,无法添加/更改硬件

无法在Windows 10上使用Hyper-V启动minikube

由于日语,无法在Windows 10上启用Hyper-V

在Hyper-V上运行的Windows 10 Pro虚拟机中改变RAM利用率

如果从函数返回v,为什么D.get(k,v)似乎总是执行v?

为什么我的Vagrantfile调用Windows中甚至禁用的Hyper-V虚拟机管理程序?

fabricjs:v2.2.1如果SVG上仅存在一个路径,那么SVG路径存储在结构对象上的什么位置