如何解决常见VMware VIC和Docker容器问题

日期: 2017-12-20 翻译:王学强 来源:TechTarget中国 英文

VMware VIC(vSphere Integrated Containers)具有很多吸引用户的卖点,但是使用Docker容器运行微服务demo应用并不是其中一项。

VMware VIC希望帮助企业无缝迁移到容器化应用程序,但是诸多限制使得在vSphere中运行容器变得非常困难。

VSphere VIC允许用户将容器加入到当前基于虚拟机的应用程序中。基于容器的应用程序可以和传统应用程序一样,在虚拟机的方式运行。开发人员使用Docker命令,而运维人员使用vSphere。在之前文章中,我曾经提及使用VIC 部署VCH(虚拟容器主机)非常简单,以及如何在容器中使用Docker命令部署web服务器。我还展示过如何添加图形管理工具来管理容器和和容器镜像。在本文中,最初我想要展示由多个容器组成的复杂应用程序,但是在Docker容器和VMware VIC方面遇到了一些复杂问题。

VMware VIC缺少Docker容器支持

我要展示的第一个实例是投票应用;这是Docker的简单应用之一,你可以在GitHub上找到相关项目。我在自己的Mac笔记本上安装了Dcoker,这也是大多数开发人员所采用的方式。为了启动投票应用,我从GitHub上克隆了该项目,之后在下载文件夹中使用”docker-compose up -d”命令运行。Docker Compose读取配置文件,创建五个容器镜像,之后启动五个容器。整个过程花费了几分钟时间。之后,我们需要在猫和狗之间进行选择——如下图所示,我选择了猫。

如何解决常见VMware VIC和Docker容器问题

图A. Docker简单投票程序

在Windows系统上,我们同样可以使用Docker Toolbox实现这个过程,因此开发人员不论使用Mac还是Windows,都可以获得相同的体验。

但是我在这个应用迁移到生产环境的过程中遇到了一些问题。VMware VIC并不支持创建Docker镜像,因此Docker Compose会立刻提示失败信息,原因是VIC没有创建镜像。我猜想VMware不支持创建镜像是因为企业级用户拥有自己的容器注册表,将创建容器镜像作为CI/CD(持续集成/持续部署)过程的一部分。

VMware VIC关于如何在VIC中创建投票应用的文档告诉用户需要首先在其他机器上创建容器镜像,之后上传到repository中。我尝试遵循这些步骤,但是最终也无法在VIC中创建正常工作的投票应用;许多容器在刚刚启动之后就立刻崩溃。因此这并不是在VIC中展示多容器应用的很好示例。

VIC在file mapping时遇到麻烦

在Google简单搜索之后我决定尝试另外一个demo应用,这是由Weaveworks提供的web商店demo应用。这款应用使用从Docker Hub——Docker的公开镜像repository——直接下载容器镜像。我只需要在电脑上配置docker-compose.yml文件,之后执行docker-compose up –d命令就可以启动应用程序了。这一次,大约需要下载15个容器镜像,因此需要花费更长的时间。所有容器启动之后,就能看到一个销售袜子的图形化web商店了。

如何解决常见VMware VIC和Docker容器问题

Weaveworks web商店demo应用

投票和web商店这两个应用程序在我的Mac和Windows电脑上都能够正常工作,但是VIC却不行。这一次是因为开发人员使用file mapping功能从Docker主机获取信息到其中一个容器。VIC不支持本地映射,并且其不是Linux机器,因此并没有标准的Linux文件。开发人员误认为用户会使用Liunx容器主机。这是将代码从开发环境迁移到生产环境的一个典型问题——也是一个容器被忽略的问题。

总而言之,今天尝试在VIC中运行微服务demo应用的过程中我学到了哪些呢?最显而易见的就是这是一种复杂技术:容器并不是将应用程序快速部署到生产环境的理想方式,并且VIC并不能提供Docker在我笔记本上的全部功能,相信其他开发人员也一样。因此开发人员肯定会使用一些其他方式让运维工作变得更加困难,因为他们关注的只是编码。从积极的角度来看,我掌握了如何部署VCH使用证书和设定环境变量,以及如何不在Docker命令行中进行指定的情况下使用VCH和证书。VMware并没有提供提供我想要的全部功能,这让我有些失望。我仍然热衷于使用应用程序运行容器,但是同时十分确定开发人员才是在生产环境中部署良好应用程序的关键。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

王学强
王学强

TechTarget特邀编辑,毕业于计算机专业,现任职于外企IT分析师,负责网络、防火墙和服务器等系统运维工作,对虚拟化、网络安全和渗透测试拥有浓厚兴趣,工作外热爱旅行、汽车和健身。

相关推荐