Linux vs Windows 容器:有什么区别?

当Docker 容器在2016支持Windows服务器,管理员必然想知道window和linux容器之间到底有什么区别。在这里就综述一下。

为了让事情简单点,让我们从相同点和不同点来分析。

相同点

Docker容器在linux和windows在以下几个方面是相同的:

  • 他们同样是被定位成应用程序容器。
  • 他们本机运行,意味着他们不依靠管理程序或虚拟机。
  • 他们可以通过docker被执行(尽管你也可以在windows上用脚本来管理容器)。
  • 他们被限制包含支持本地主机操作系统的应用程序。换句话说,Docker for Windows只能集群在Docker容器中的windows应用程序,并且linux上的docker只支持Linux的应用程序。
  • 在两个操作系统中,他们提供同样的可移植性和模块化特征。

不同点

以下是dockerWindows操作系统上的不同之处:

  • Docker只支持windows的某些版本(也就是说,windows服务器2016和win10)。相比之下,docker可以在任何类型的现代linux基础操作系统。
  • 哪怕docker支持Windows版本,windows有严格的关于图像兼容性的要求。关于这部分可以浏览https://msdn.microsoft.com/en-us/virtualization/windowscontainers/deployment/system_requirements。
  • 一些Docker容器的网络特点目前在Windows上还不支持。在这个页面(https://msdn.microsoft.com/en-us/virtualization/windowscontainers/management/container_networking)的底部有详细说明。
  • 大多数在linux可以使用docker的容器编排系统在windows却不支持。有个例外就是docker swarm,它支持。(如果你想在windows用一个其他的容器编排系统,然而,最好不要,windows支持的容器编排系统例如kubenetes和mesos还开发不足)。
  • 这也是值得一说的,就是docker是当前唯一的和Windows和谐相处的主要的容器平台。其他的容器引擎,例如OpenVZ和LXD,仍是只支持linux,并且在未来可能仍是只支持linux。

自从这些容器平台比docker更迎合不同类型的使用案例,他们缺乏windows的支持对管理员决定是在Windows还是linux上运行docker也许并不重要。然而,事实上docker是在Windows上唯一的容器选择是有重要意义的,因为他强调了一个事实,目前Windows容器的生态系统比Linux容器世界小得多。

关于作者

Christopher Tozzi近十年都全面覆盖了科技和行业新闻,特别是在开源、容器、大数据、网络设计和安全方面。他当前是Fixate.io和Sweetcode.io的资深编辑和DevOps分析师。

分享到:更多 ()