如果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这个词很重,在这种情况下可能会引起混乱:)
提前致谢!
Docker对Windows的支持具有多种变体:
包含Docker Machine的Docker Toolbox,它将在VirtualBox内部启动boot2docker映像。这些是在VM内运行Linux内核的Linux容器。最初,这是Windows用户的唯一选择。
适用于Windows的Docker使用Hyper-V运行基于LinuxKit的Moby VM,以运行Linux映像。LinuxKit提供了一个基于容器的Linux OS,并且进行了一些集成以使最终用户看起来不像VM,例如,您可以使用127.0.0.1代替VirtualBox VM的IP。如果您有可用的Hyper-V,并且希望在Windows上运行Linux容器,则这是首选。
Windows Server容器在同一主机OS上运行Windows二进制文件,类似于Linux OS上的Linux容器不需要VM的方式。
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] 删除。
我来说两句