【.com速译】这个周末在MonkiGras度过,今年的软件开发workshop主要集中在软件打包这个话题上。许多演讲者谈到了容器技术在DevOps和持续交付领域的重要作用。但是,作为一个普遍的误解,很多朋友仍然认为Docker只能运行在Linux虚拟机上。 并非如此:Windows有自己的容器技术,基于Docker但能够在Microsoft环境中运行。当然,我理解为什么会出现这种误解:Windows10只是增加了Linux子系统功能,而WindowsServer2016同时增加了Docker工具。这使得人们在一定程度上将Linux与Docker联系在一起。 微软对容器技术的重视成为近年来最重要的跨领域发展举措之一。毫无疑问,容器技术已迅速成为DevOps和持续集成实施工作的关键组成部分。微软当然参与其中,其工具反映了微软使用软件和构建应用程序的方式。 关于容器 通过将应用程序使用的服务与操作系统所需的服务分离,现代容器技术已成为打包和部署服务器端应用程序的强大工具。它的可移植性可以在本地数据中心、私有云、混合云甚至公有云中得到充分体现。打包在容器中的应用程序与主机操作系统无关,可以在任何类似的容器主机上运行而无需任何更改。 将应用程序打包到容器中意味着应用程序可以轻松获取运行所需的所有配置文件和依赖选项。您可以在不影响底层操作系统的情况下更新容器版本,在不更改代码的情况下实现容器迁移。这种分开管理基础设施和应用程序部署的方式是DevOps模型的逻辑目标。 容器解决方案(或者至少类似于命名空间和进程隔离的表现)最初作为大型机技术,现在可以在各种Unix系统中找到,包括Linux和Solaris。 探索Windows容器 现在,随着WindowsServer2016的发布,Windows也有了自己的容器技术。它基于开源Docker容器,但同时增加了对PowerShell的支持以及对NanoServer和Hyper-V容器的额外隔离。 Docker仍然是微软容器战略的核心。不仅可以使用Swarm、Machine,甚至DataCenter等产品来管理Windows和Linux容器,甚至可以在Windows10上通过Bashshell在Linux子系统中安装和使用Docker客户端。不过,这种方法需要每个人都要提供证书,所以用户一般更喜欢直接选择Windows版本的Docker。 与大多数WindowsServer功能一样,Windows容器可以通过Windows对话框或PowerShell安装。使用PowerShell效率更高,因为OneGetPowerShell模块可以同时安装Windows容器和Docker,而且只需重启一次即可生效。(如果要使用Hyper-V容器,还需要启用Hyper-V虚拟化选项。) Windows容器得到了开发和运营团队的热情支持。自WindowsServer2016全面发布以来,DockerHub容器库公司Windows基础镜像的下载量已超过100万次。 在Windows上构建和部署容器 容器不仅仅是一个服务器工具,Windows10专业版和企业版都支持这项技术。另外,由于Windows10只支持Hyper-V容器,所以还需要安装Hyper-V。 开启Windows容器功能后,您还需要下载安装DockerEngine和Docker客户端,然后安装您为应用配置的基础镜像。 微软推荐大家使用NanoServer作为Windows容器构建镜像的基础,体积小速度极快,无UI,部署速度更快,相对更安全。 另外,虽然你可以使用NanoServer来承载Node.js等运行时,但它实际上主要用于承载.NetCore应用。您无法获得所有.Net功能。但这样一来,你就可以简单地将NanoServer托管的Windows容器看成是一个新的应用工具,而不是对原有代码的托管解决方案。 由于以上差异,很多企业更倾向于使用WindowsServerCore作为基础镜像。尽管它更大并且部署时间更长,但WindowsServerCore支持当前的WindowsSDK和所有.Net实现。您可以选择在现有服务器和容器之间轻松切换,以便随时将应用程序部署到您需要的平台上。应用部署到容器中后,开发者可以进一步拆分,比如将API连接器移到自己的NanoServer容器中,简化应用维护。 Windows容器现在可用作VisualStudio2017的部署目标。您可以构建和交付应用程序作为容器进行测试。对于容器技术的推广来说,这么简单的一键式实现确实非常重要。 由于MicrosoftAzure即将支持嵌套虚拟化,我们将能够利用容器的力量在公有云中添加更多的隔离能力,帮助监管机构进一步了解将应用程序迁移到容器和云环境的可行性和意义。 原标题:关于Windows中的Docker,你需要了解的事情 原作者:SimonBisson
