Windows容器的内部构造和Docker连接介绍

Windows容器的内部构造

创建和实施容器需要许多组件,而首先需要的便是运行这些容器的主机news.webhostingtalk.cn了。只要您启用了Windows容器功能,那主机就可以成为运行Windows 2016 Server的物理计算机或虚拟机了。

您可以在Windows Server Full UI版本或Core版本上托管容器,而这两个版本是默认安装的。此外,微软还推出了Windows Server 2016的Nano版本,这是一款最小的无头版操作系统,它不包括本地GUI或控制台。

另外,微软还向Windows Server 2016添加了嵌套虚拟化功能,这样一来,如果您的主机是一台虚拟机,那您就可以运行Hyper-V容器了。如果您打算运行此类容器,则必须在主机操作系统上启用Hyper-V功能。Microsoft也向Windows 10添加了容器支持功能,但这仅适用于Hyper-V容器。(容器功能目前可在Windows 10内部版本、14352及更高版本中获得。)

与其它Docker容器一样,您是从映像中部署Windows容器的。每一映像都以容器操作系统映像开始,该映像为包含将在容器内部运行的操作系统的基本映像。目前,微软为我们提供了两种基本映像:Server Core映像和Nano Server映像。在部署容器之前,您必须先从微软官网中至少下载这两个操作系统映像之中的一个,而微软会根据您的主机操作系统(如下表所示),限制您可以为每一容器类型使用的映像。

 

 

如您所见,Hyper-V容器目前仅支持Nano Server映像,但是,您对Windows Server容器的选择取决于您正在运行的Windows Server版本。

对于这种类型的容器来说,操作系统映像还必须与主机系统的构建和补丁级别相符,因为不匹配可能会导致容器或主机出现不可预测的行为。这意味着,如果您更新了主机操作系统,那您也就必须更新容器基础操作系统映像,而且您无法在基于Windows系统的主机上运行基于Linux的容器,反之亦然。这对Hyper-V容器来说也是如此。

说到部署容器,映像能为您提供高度的灵活性。您可以根据现有映像来创建新映像,并在必要时经常升级新的映像。然后,您就可以从该映像中部署一个或多个容器了。

例如,假设您在Server Core映像的基础上创建了一个新的映像,而且在该映像中安装了一个正在开发中的应用程序和任意的应用程序依赖关系。接着,您就可以从该映像中部署一个或多个容器了。其中,每个容器都充当了沙箱(包含功能齐全的应用程序所需的所有组件)的作用。

您在必要时可以经常部署映像,并使任意数量的容器共享这一映像。您可以在需要时创建容器,然后在完成工作后将它们删除。最重要的是,您可以随时更新和重新部署映像,随即再创建包含最新修改内容的新容器。

在您准备好实施确切的容器之后,您才需要选择容器类型(Windows Server或Hyper-V)。不过,容器的类型与您组装映像的方式无关,因为映像是存储于存储库中的,而且您可在随时随地想部署容器(无论是Windows Server还是Hyper-V容器)的时候使用这些映像。

为了帮助您对Windows Server和Hyper-V容器进行自动化的容器管理,微软已经在Windows Server 2016技术预览版本中添加了PowerShell模块,而此模块对于集成容器与本地工具也十分有用。但是,微软最近宣布将不再支持该模块,并会将其替换为可直接构建在Docker引擎的REST界面之上的新模块。这一举措并不出人意料,但却使得Docker能在之后的容器世界中发挥关键的作用。

Docker连接

除了作为一家公司之外,Docker也是一个开源项目,它能为部署和管理容器的过程提供帮助。Windows容器现在成为了该项目中的一部分,而Docker公司正致力于将Windows容器完全集成到Docker生态系统中。为此,Docker公司现在为Windows容器提供了Docker Engine和Docker Client的支持。

Docker engine为您提供了管理Docker环境所必需的功能。例如,您可以将其用于自动化创建容器映像的过程。虽然您也可以手动创建映像,但它却能为您提供一系列的好处,比如能让您将映像存储为代码、轻松重建这些映像、或将其合并到持续的集成开发周期中。

但是,Docker engine并不属于Windows安装过程中的一个部分。您必须从Windows官网中单独下载、安装和配置Docker engine。另外,它是作为一项Windows服务运行的。您可以使用该engine的配置文件或Windows服务控制管理器(SCM)来对服务进行配置。打个比方,您可以设置默认的调试和日志选项,或者对它接受网络请求的方式进行配置。微软建议您在SCM上使用配置文件,但请注意,不是每个文件中的配置选项都适用于Windows容器的。

基本上,Docker engine为您完成了与容器管理相关的所有繁琐工作,同时还为Docker client提供了与Docker engine相接所必需的API。 Docker client是一个命令行界面,它为您提供了一组可用于管理映像和容器的命令,而这些命令也可以允许您在Linux系统上创建和运行Docker容器。 尽管您无法在Linux系统上运行Windows容器,也无法在Windows系统上运行Linux容器,但您可以使用同一Docker client来分别管理Linux和Windows容器——无论这些容器是Windows Server还是Hyper-V容器。

与Docker engine一样,您也必须自行下载并安装Docker client。该客户端可以在Windows 10或Windows Server 2016上运行,而您只需将其指向Docker服务便可控制Docker engine了。但是,请记住,Docker for Windows组件仍在开发之中,其功能也尚未开发完毕。不过,这应该如新的PowerShell容器模块那样即将问世,从而为您提供管理Windows容器的能力。

Windows世界

在使Windows具备齐全的功能之前,微软和Docker公司要做的工作还有很多,但我们迄今为止所见证的发展代表了这两家公司重要的前进步伐。最终,Windows用户将可以利用容器十多年来为Linux世界提供的优势、灵活性以及可移植性。鉴于Docker近几年来一直保持的重要地位,Windows-Docker集成将使未来的发展更加光明——尤其对于那些想同时使用Linux和Windows容器的用户来说。

Docker将对Windows世界造成的影响程度还有待观察,而且我们也无法预知Windows容器是否会导致顽固的Linux粉丝走向黑暗面,但是对于那些早已使用Windows生态系统的用户来说,容器可谓是一个巨大福音,而且也在说服企业升级到Windows Server 2016方面发挥了重要的作用。毫无疑问,这也是自首个Docker评价出现以来,微软一直在考虑的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值