为什么Docker for Windows会让您选择Windows或Linux容器?

时间:2018-04-06 08:37:37

标签: docker docker-for-windows

使用Docker for Windows时,您必须选择使用Windows或Linux容器,但不能同时使用这两种容器。这是什么技术原因?这有点违反直觉,因为每个容器都有自己独立的操作系统。

2 个答案:

答案 0 :(得分:2)

Windows计算机上的Docker生态系统包含多个组件。 一个是Docker命令行:用于一切管理的docker命令。第二个是Docker守护进程 - A self-sufficient runtime for containers,核心。

Linux容器和Windows容器的Docker守护程序不同,但它们在同一管道上侦听来自docker客户端的连接。因此需要停止其他人才能开始。这是您要求的技术原因。

但是,你可以观察到容器是从ex开始的。在MobyLinuxVM中,当您切换到Windows容器时,它仍然可以运行并可用于连接。这里唯一的事情就是你无法管理它们,因为Windows的Docker守护进程不知道如何在MobyLinuxVM中管理Linux容器。

更新:如this post中所述,

  

Docker for Windows 18.02现在支持使用单个Docker守护程序通过LCOW并行运行的Linux和Windows容器。

实际上现在你可以使用一个docker守护程序来管理这两个世界,它只是在--platform中使用新的docker pull标志。

答案 1 :(得分:1)

Docker for Windows上的Linux容器不是由Windows本身处理的,但它们使用的是Hyper-V Linux VM - MobyLinuxVM。因此需要在Linux和Windows之间切换。

然而,从边缘版本的Windows 1709和Docker开始,您可以在Windows上试用linux容器 - 请参阅:https://blog.docker.com/2017/09/docker-windows-server-1709/

<强>更新

正如@ v.karbovnichy提出的那样,技术上在Docker for Windows上你可以&#34;可以&#34;同时运行linux和windows容器 - 您可以使用docker-machine命令创建运行Linux容器的其他基于Linux的虚拟机。然后,你可以将它们连接到一个swarm中,并且只需一个良好的意愿,你就可以在同一台机器上同时运行linux和windows容器。

docker客户端命令本身可以连接到linux或windows docker-server和&#34; manage&#34;两者 - 检查docker login - 它在服务器配置中广泛使用。

但是如上所述,真正运行的linux和windows容器彼此相邻处于预览状态。