微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

你可以在新的Windows 10(Ubuntu)bash用户空间本地运行Docker吗?

我的理解是,在其他操作系统上运行docker的主要限制是使 Linux网络容器成为可能. (当然对于Macs).

最近Microsoft announced是在Windows 10上本机运行的Ubuntu linux user mode的测试版.这可以在Windows上运行以ELF格式编译的二进制文件(不像需要编译的cygwin.)

我的问题是:你能在新的Windows 10(Ubuntu)bash用户空间本地运行Docker吗?

截至目前(2016年4月),答案是:

我们还不知道(但可能不知道).

事实

> Windows 10现在可以运行各种Linux程序(其中包括
他们是Bash shell和各种文本实用程序).这些不是端口
(即重新编译的版本,例如在Cygwin中),它们是
在典型的Linux系统上运行的ELF binaries相同.在
这种情况下,它们来自Ubuntu.
>为了实现这一点,Windows 10被修改为接受Linux系统调用(系统调用),并能够加载和运行ELF二进制文件(comment by Scott Hanselman).这意味着可以运行未修改的Linux可执行文件,它们将根据需要加载未修改的共享库,Windows将它们作为Windows进程运行.
>每当这样的Linux程序想要与内核交互时,它就会发出一个系统调用(或者让一个库执行它).这(可能)是在Linux上运行的唯一区别:在Linux上运行时,Linux内核处理这些调用;在Windows 10上,Windows 10内核代替了它.

猜测

所以问题是Docker需要的系统调用(用于chroot和命名空间等)是否已实现.答案是这可能是“不”. Docker需要相当复杂(和特定于Linux)的功能来进行流程和资源管理以及进程隔离.虽然可能在Windows上复制所有这些,但这将是很多工作,并且由于此Windows功能的目标似乎是运行Linux用户空间程序,因此它们似乎不太可能完成所有工作(并保密) .

但是,据我所知,没有任何确切的信息.

现有的Docker端口

当然,如果微软决定在Windows 10中支持Docker,他们可能会提供它.将Docker移植到不同的内核有一些先例:

>有一个Docker port for FreeBSD.它被标记为“实验性的”,但似乎在原则上起作用.它可以使用Docker存储库中未经修改的Docker容器,这意味着它实际上为图像提供了类似Linux的主机环境.
>目前正在进行一项将Docker移植到Windows(特别是Windows Server 2016)的项目 – 请参阅2015年8月的Docker blog entry.但是,与上面的FreBSD端口不同,这将是一个允许Docker在Windows上运行Windows映像的端口,而不是Windows上的Linux映像.感谢RöryMcCune指出这一点.

原文地址:https://www.jb51.cc/windows/370740.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐