Docker:为什么要在Windows上使用Linux容器?

29

我正在使用Win 10 Pro N(版本1709)作为开发机器,Windows Server 2016 Standard(版本1607)作为生产服务器。

我目前正在开发一个使用MongoDb作为数据库的ASP.NET Core 2应用程序。

几天前,我第一次想到将MongoDb作为Docker镜像运行。

我以前没有使用过Docker,但是我成功地从Linux容器(默认)切换到了Windows容器在Windows机器上

这是个好决定吗?或者在我的情况下,是否有任何理由使用Linux容器而不是Windows容器?

例如,如果我决定将应用程序部署到Linux服务器上,那么这种情况下,从一开始就使用Linux容器会更明智吗?


你可以同时使用两种模式并随时在它们之间切换,在同一时间内以两种模式运行容器。唯一的缺点是你不能管理(连接、启动、停止等)非当前选择模式的容器。 - OrangeDog
使用Windows容器与使用Linux容器相比,有哪些优缺点? - Line
2个回答

37

Docker 不是关于虚拟化,而更多是关于隔离。

Windows 容器将在 Windows 主机上运行

Linux 容器将在 Linux 主机上运行

随后有人想在 Windows 上运行 Linux 容器

  • 首先需要在 Windows 上创建一个 Linux VM 来运行容器
  • 现在可以使用 LinuxKit 运行容器,但它仍然是轻量级的 VM

接着有人想在 Linux 上运行 Windows 容器

  • 首先需要在 Linux 上创建一个 Windows VM 来运行容器
  • 现在你可以使用今天最新版本的工具

所以最好的选择是从针对生产服务器的容器开始。


8
为了明确起见,如果您在Windows上使用Docker运行Linux容器,则它会自动管理一个Linux虚拟机来运行它们。 - OrangeDog

16

如果您想要部署到 Linux,我建议使用 Linux 容器,因为这样您可以测试更相似的设置,并且更有可能发现在最终部署中也会出现的问题。

除此之外,Linux 容器技术比 Windows 容器更成熟、得到更好的支持。


这是否意味着我可以在 Windows 机器上运行 Linux 容器,但无法在 Linux 机器上运行 Windows 容器? - Ingmar
1
你不能在Linux机器上运行Windows容器。但是,你可以在Windows机器上运行Linux容器,因为Linux是开源和免费的,而Windows只是在其上运行Linux以实现这一目的。 - herm

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