文档详情

初识Docker和indows_Server容器.docx

发布:2017-05-09约6.58千字共8页下载文档
文本预览下载声明
初识Docker和Windows Server容器 概览 伴随着Windows Server 2016 Technical Preview 3 (TP3)版本的发布,微软首次提供了Windows平台下地原生容器。它集成了Docker对Windows Server的支持,这意味着你可以在Windows环境下运行Docker容器。 首先需要明白的是,这不是第一次提供Windows下的容器。Odin(一家软件托管公司)已经通过自己的系统提供Windows容器超过十年了。考虑到他们没有获得微软提供的任何源代码,这不是一件简单的事。 其次,Windows容器(即使是Docker)仅仅被用来运行Windows应用。即使有共同的特性,所有现有基于Linux的容器不能在Windows中运行,对于那些起步者我认为这是一个通常的转换点。 还有两种Windows容器技术也是如此,一种基于Hyper-V,另一种可以直接运行在Window Server 2016(指的是Windows Server容器)。后者已经在这个发行版本中提供,所以我们将在这里测试它。 开始使用Windows 2016 整个安装过程非常简单,选择安装类型,选择一个驱动,直到完成安装。在我的体验中,我认为这是我所接触过安装最简单的Windows,所有设置和运行时间少于5分钟。当然,这是一个良好的开端。 这是我第一次使用Windows 2016,如果你熟悉Windows 10和Windows Server 2012,你会觉得(至少在视觉上)它是两个的混合体。事实上,自从2012 R2版本后已经有很多问题得到了修复。对于Server来说磁贴导航是(现在仍然是)非常糟糕的主意,尤其是在远程管理的时候。正如上面的截图所示,微软已经回归到了更加熟悉和直观地正常的启动菜单驱动系统。 安装容器 一旦你的Windows 2016 TP3基础版本安装完成后,你就可以安装Windows Server容器组件Docker和创建需要的容器镜像了。微软有一个引导来帮助你完成整个简单的过程。虽然只有三个步骤,由于最后一步需要下载容器的基础镜像(大于3GB),所以会耗费一些时间。 注意: 确保根据以下的引导来安装镜像。如果不这样,容器不会像预期一样工作。 让我们来看一下PowerShell脚本具体是做什么的。虽然从节省时间的角度来看单行安装不错,你需要彻底地检查每一个步骤来看看它做了什么工作。尤其是当它是生产服务器的时候,你永远不应该盲目地安装你没有检查过或不理解的任何脚本。 第一步是建立一个虚拟交换机用于容器的联网。它通过使用DHCP来分配/12范围的IP地址和NAT来使得外部可访问主机。接着,安装容器组件(Install-Feature -FeatureName Containers)然后安装一个“zdp.cab”,如果它是可用的。这相当含糊,这个文件并不存在于我的系统中。谷歌搜索也没有找到相关的结果,最接近的是“Zero Day Package”,说明它只是简单的更新汇总文件。 然后安装器下载了“ContainerBaseImage.wim”并放到了C盘。这会耗费一些时间,因为这个基础镜像依然超过了3GB。PowerShell脚本中一个有趣的注释是微软为了性能禁用了进度条。这让我很好奇,我测试了下载(使用wget)并启用了进度条,这耗费了两个核心70%的性能,所以他们并没有开玩笑。一旦.wim文件下载完成就安装基本容器镜像(使用“Install-ContainerOsImage”命令)。 接下来Docker已经完成了下载并已经被安装了。然后再NSSM也就是“Non-Sucking Service Manager”的帮助下启动服务。最后这个基础镜像已经在Docker中被标记了,然后就可以使用了。 Windows Server容器:新的开始 在Conteix,我们已经使用Windows Odin容器超过10年,所以容器的概念并不是新的。但是这里仍然有几个关键的区别,当然这也在随着产品的发展在不断变化。最主要的是基础镜像(.wim文件)必须与当前主机版本和补丁级别完全匹配。如果要为你的服务器打补丁,你需要重新下载并安装容器镜像。我希望这只是一个简单的问题并且微软能在发布正式版本的时候有办法自动更新补丁级别。 然后,并不是一切都一帆风顺。在预览版中可能会出现重新执行一些指令甚至删除重新创建容器的情况。所有的命令都是通过PowerShell执行,你需要保证PowerShell运行在管理员权限下。 让我们来开始创建基础容器: New-Container -Name WinContainerTest -ContainerImageName WindowsServerCore -SwitchName Virtual Sw
显示全部
相似文档