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

前端之家收集整理的这篇文章主要介绍了你可以在新的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指出这一点.

猜你在找的Windows相关文章