Docker for Windows 如何运行 Linux 容器?

49
在旧版的Docker for Windows中,我记得明确说明它使用Linux虚拟机作为内核。
但是自从新的稳定版本(我认为是在2016年7月发布)以后,它说:
“Docker for Windows是一个本地Windows应用程序,具有本地用户界面和自动更新功能,与Windows本地虚拟化、Hyper-V、网络和文件系统深度集成。”
如果我理解正确,指定的基础镜像是用户空间的内容,而使用主机的内核。
所以,如果我指定正在使用Ubuntu基础镜像来运行echo命令,Windows内核会如何发挥作用?
还是我完全误解了什么?

这个 Docker for Windows 只能运行 Windows 容器。 - user2915097
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Dan Lowe
2
在这种情况下,为什么我能够使用最新的稳定版本运行docker run ubuntu /bin/echo 'Hello world'命令呢? - MrVoodoo
我可以指向这位架构师的演示文稿: Linux Containers on Windows -- The Inside Story,John Starks,DockerCon Europe 2017。 - will
1个回答

67

Docker for Windows 仍然使用 Linux VM 来运行 Linux 容器。不过,与 Docker Toolbox 使用的 Virtual Box 不同,Linux VM 是使用 Windows 原生超级监控程序 Hyper-V 运行的。这意味着 Docker for Windows 发货的组件较少,移动部件也较少。

如果你安装了 Docker for Windows 并运行 docker version,你会看到 Docker Linux 守护进程在 "Moby Linux" 上运行。


3
截至2017年的DockerConf大会上,有关于利用Windows 10的功能来托管Linux子系统的新公告,因此您可能不需要在HyperV中运行完整的Docker for Windows的Linux虚拟机。 - Thiago Silva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接