Docker on Windows似乎是 Windows Server 2016 中内置的内容?并支持在Docker容器内运行Windows并使用Windows作为Docker容器主机。这是否支持Linux?我不这么认为,我认为它只支持运行Windows Docker容器。这似乎也由微软维护。
Docker for Windows似乎是由Docker团队创建的单独安装,用于将Linux Docker引入Windows。因此Windows可以是Docker主机,但所有容器仍然只是普通的Linux容器。这是否支持Windows容器?我不这么认为,我认为它只支持运行Linux Docker容器。这似乎也是由Docker维护的。
另一个有趣的注意事项是Docker Tools for Visual Studio似乎只支持 Docker Desktop for Windows 而不支持 Windows上的Docker 。
我真正想要的是两者之间存在的明显差异,某种良好的比较。每个都试图实现什么功能,它们在哪里相似,它们在哪里不同。他们会永远不同,还是会聚在一起?
答案 0 :(得分:8)
Windows上的Docker 是一种通俗的方式来引用在Windows上运行的Docker引擎。我认为将其视为 Windows容器主机是有帮助的,所以是仅限Windows容器。这将是您在Windows Server 2016计算机上运行的内容。所以也许更好的名称是 Windows Server的Docker ,我相信人们也使用过它。我还是喜欢Windows容器主机。这意味着它在一天结束时只有Docker引擎,甚至不需要任何Docker客户端(docker CLI,docker-compose等)。
适用于Windows的Docker 是一款用于在Windows上运行 Linux和Windows容器的产品。它不适用于生产环境,而是用于Windows的桌面/客户端SKU,因此需要Windows 10。所以你可以把它想象成Windows 10的Docker。因为DfW可以运行两种容器类型,所以它在你的机器上设置了不同的配置:
理论上你可以在Windows Server上安装DfW,我没试过,所以我不知道这是否会失败,但为什么你要在生产的Windows主机上运行Linux容器?在生产中,您将拥有运行Linux容器的Linux容器主机和运行Windows容器的Windows容器主机,这将避免开销并简化操作。
答案 1 :(得分:2)
只需在Wes关于Windows的Docker的答案上加上一些关于实验性LCOW的细节,这就是您想要在Windows主机上并行执行Windows和Linux容器的内容。
目前,有两种方法可以通过Docker for Windows和Hyper-V运行Linux容器:
在第一种方法中,适用于Windows的Docker窗口将在Windows主机上具有docker daemon服务,并将在Linux MOBY VM上提供。因此,基本上,您将拥有2个不同的Docker主机。一种在Windows主机上运行,仅管理 Windows容器,另一种在Linux Moby VM上运行,并且仅管理 Linux容器。
需要注意的是,所有Linux容器将在Moby VM上共享一个Linux内核,所有Windows容器将在Windows主机上共享一个Windows内核。
第二种方法真的让事情变得有趣
具有Hyper-V隔离功能的Linux容器在经过优化的Linux VM中运行每个Linux容器,而Linux OS仅具有足以运行容器的操作系统。每个 Linux容器都有自己的内核和自己的VM沙箱。它们也由Windows上的Docker直接管理。
此方法的主要区别在于,在 Windows主机上仅运行一个docker daemon服务,并管理 Windows和Linux 容器。
所有Windows容器将共享一个Windows内核,而每个Linux容器将具有自己的Linux内核
要详细了解,请参阅 https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers