前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VMware桌面端容器方案-AppCatalyst用法

VMware桌面端容器方案-AppCatalyst用法

作者头像
Henry Zhang
发布2019-04-12 17:40:02
9770
发布2019-04-12 17:40:02
举报
文章被收录于专栏:亨利笔记亨利笔记

题图摄于怀柔雁西湖

编者注:在《VMware容器工具AppCatalyst》一文中介绍过AppCatalyst的原理。VMware资深架构师西蒙深入实践,提供了如何在开发环境中使用AppCatalyst的详细步骤。下文转自西蒙的个人公众号: 疯云时代(crazycloudtime),由编者略做修改。未经作者许可,请勿转载。

首先用一句话概括VMware容器整体解决方案:“The Docker Ecosystem You Love on the Hypervisor You Trust”,这个方案中的开发者桌面就是AppCatalyst

概览

想了解AppCatalyst(以下简称AC),请访问官网http://getappcatalyst.com/,你可以在这里下载用于Mac OS X的技术预览版(Windows版本的在计划中),参照上面的文档进行安装和功能测试,但是这里能获取的信息很有限(论我写这篇文章的必要性)。

那么AC到底是什么呢?官网上的说法是“The free desktop hypervisor for developers”。VMware的Workstation和Fusion大家应该很熟悉了,目前的这个AC就是基于Fusion做出来的(但是和Fusion有较大的不同),它的目标是为开发者提供一个基于容器的开发环境。

你可能会说,这样的开发环境现在多得是啊,Docker自己就提供了一个Docker Toolbox嘛。没错,目前来看,AC和这类的工具差不多,但AC的功能可不只是在Mac OS和Windows上支持容器那么简单,AC的未来是SDDC on Destkop,通过与相关产品集成,在开发者桌面上复制全套生产环境。下面我来介绍一下当前版本AC的主要特点。

AC的第一个特点是免费,这很重要,很多人喜欢VMware的Workstation和Fusion,但却选择了不那么稳定的VirtualBox,因为它免费。免费的AC相对于收费的Fusion少了一些功能:图形界面(没错,那些只爱键盘不爱鼠标的人不需要GUI),3D图形支持(所以它不能用来打游戏了),Virtual USB支持(开发者有一千种方法把文件搞进虚拟机),Windows客户机支持(一切为了Docker)。

AC的第二个特点是API和CLI驱动,这种管理方式是开发者的最爱,可以很方便地与其它相关工具和程序集成,高效地执行任务。我后面会介绍AC与Vagrant和Docker Machine的集成,这是两个非常好的例子。

AC的第三个特点是为云原生应用而生,AC内部集成了Photon OS(https://vmware.github.io/photon/),这是VMware的一个开源解决方案,旨在为用户提供一个轻量、安全、可靠的容器主机。关于它的更多内容,我准备单独写篇文章来说。

图1:AppCatalyst架构

体验

要想体验AC的功能,你只需要一个Mac OS X 10.9以上版本的系统和一个Internet连接,再加上像本文一样的好向导[写这句话的时候我的脸都羞红了呢]。

首先到http://getappcatalyst.com下载安装文件,在Mac OS上安装dmg文件非常简单,无需多言。需要特别说明的是,目前版本的AC不能与Fusion同时运行。我的MBP上安装了Fusion,为了方便管理测试环境,我选择在Fusion上创建虚拟机并安装Mac OS X(EI Capitan版本),然后在虚拟机内完成了所有测试。

如果你超喜欢CLI,连安装磁盘镜像文件都想用命令行,那下面这堆命令给你参考:

wget -c –q http://getappcatalyst.com/downloads/VMware-AppCatalyst-Technical-Preview-August-2015.dmg hdiutil attach VMware-AppCatalyst-Technical-Preview-August-2015.dmg sudo installer -pkg "/Volumes/VMwareAppCatalyst/InstallVMwareAppCatalyst.pkg" -target / umount "/Volumes/VMwareAppCatalyst/” export PATH="/opt/vmware/appcatalyst/bin:$PATH”

AC的缺省安装路径在/opt/vmware/appcatalyst下,相关文件主要有:

AC的CLI管理工具:

/opt/vmware/appcatalyst/bin/appcatalyst

REST API daemon:

/opt/vmware/appcatalyst/bin/appcatalyst-daemon

虚拟机模板,内置Photon OS:

/opt/vmware/appcatalyst/photonvm/*

配置文件,可修改文件缺省路径和API daemon的监听端口:

~/.appcatalyst.conf

AC的相关命令主要有:

1. Virtual Machine Operations

vm list //查看虚拟机 vm create <id> //通过模板创建虚拟机 vm clone <parentId> <id> //克隆一个现有虚拟机

2. Virtual Machine Power Operations

vmpower list //查看已启动虚拟机 vmpower on <id> //开虚拟机 vmpower off <id> //直接关虚拟机 vmpower shutdown <id> //停止Guest OS再关虚拟机 vmpower suspend <id> //挂起虚拟机 vmpower pause <id> //暂停虚拟机 vmpower unpause <id> //解除暂停

3. Guest OS Operations

guest getip <id> //获取虚拟机IP地址

了解了这些命令,就可以开始尝试通过AC创建你的第一个Docker环境了,首先用appcatalyst vm create <id>命令创建虚拟机,然后用appcatalyst vmpower on <id>启动它,再通过appcatalyst guest getip <id>命令获取虚拟机的IP地址(如果显示“Error: Got empty IP address”请等一会儿再试,AC不支持Instant Clone技术,VM的启动需要时间)。有了IP地址,就可以通过SSH命令(ssh -i /opt/vmware/appcatalyst/etc/appcatalyst_insecure_ssh_key photon@ip)连接到虚拟机内部一探究竟了。写本文时安装包内部集成的docker还是1.8,官方的升级命令是tdnf,但是要等VMware提供升级包,如果不想等官方升级包,可以参考这篇文章手工升级:http://www.virtuallyghetto.com/2015/12/how-to-update-appcatalysts-default-photonos-vm-template-wdocker-1-9.html

细心的朋友可能发现没有删除虚拟机的命令(但有删除虚拟机的API),要在命令行删除虚拟机,直接到虚拟机存储目录(缺省为~/Documents/AppCatalyst)下删除虚拟机对应目录和文件即可。

图2:使用AppCatalyst创建Docker运行环境

下面再来看一看AC的API,要访问AC的API,需要启动API daemon。

$/opt/vmware/appcatalyst/bin/appcatalyst-daemon 2015/12/28 15:09:32 DEFAULT_VM_PATH=/Users/slab/Documents/AppCatalyst 2015/12/28 15:09:32 DEFAULT_PARENT_VM_PATH=/opt/vmware/appcatalyst/photonvm/photon.vmx 2015/12/28 15:09:32 DEFAULT_LOG_PATH=/Users/slab/Library/Logs/VMware 2015/12/28 15:09:32 PORT=8080 2015/12/28 15:09:32 Swagger path:/opt/vmware/appcatalyst/bin/swagger 2015/12/28 15:09:32 appcatalystdaemonstarted.

然后就可以通过浏览器访问(http://localhost:8080)由Swagger渲染过的API图形界面了。你也可以尝试通过命令行调用API的功能,如获取虚拟机的IP地址,命令为:

curl http://localhost:8080/api/vms/<id>/ipaddress

启动虚拟机的命令为:curl -d "on" -X PATCH http://localhost:8080/api/vms/power/<id>

图3:AppCatalyst的API

集成

首先看看AC与Vagrant的集成,Vagrant是一个使用广泛的开发环境构建工具,Vagrant一向与VMware有合作,已经发布了与vSphere和vCloud Director相集成的插件,现正与VMware一起开发AC和Photon OS的相关插件。要测试这一集成,你需要通过下述命令安装这两个插件。

vagrant plugin install vagrant-vmware-appcatalyst vagrant plugin install vagrant-guests-photon

然后就可通过vagrant init vmware/photon命令创建Vagrantfile了。下面是一个Vagrantfile的示例,通过它可以创建两台1个vCPU,384M内存的虚拟机:

nodes = [ { hostname: 'vagrant1', box: 'vmware/photon'}, { hostname: 'vagrant2', box: 'vmware/photon'} ] Vagrant.configure('2')do |config| # Configure our boxes with 1 CPU and 384MB of RAM config.vm.provider'vmware_appcatalyst'do |v| v.vmx['numvcpus']= '1' v.vmx['memsize']= '384' end # Go through nodes and configure each of them.j nodes.eachdo |node| config.vm.definenode[:hostname] do |node_config| node_config.vm.box= node[:box] node_config.vm.hostname= node[:hostname] end end end

接下来运行vagrant up --provider=vmware_appcatalyst命令来启动部署,命令成功执行之后,你可以通过vagrant status命令查看虚拟机状态,可以使用vagrant ssh访问虚拟机,以及使用vagrant destroy命令清除这些虚拟机。

下面再来看看AC与docker-machine的集成,目前官方发布的docker-machine还不支持与AC的集成,你需要到这里下载测试版本https://github.com/cloudnativeapps/machine/releases

之后你就可以使用相关命令来管理Docker Host了。

通过Docker Machine创建虚拟机 $docker-machine create -d vmwarecatalyst dm01 替换环境变量 $eval “$(docker-machine env dm01)” 连接到Photon OS实例 $docker-machine ssh dm01 停止和删除虚拟机 $docker-machine stop dm01 $docker-machine rm dm01

图4:Docker Machine与AppCatalyst的集成

后记

在容器的圈子里,VMware还是一年级新生,但勇于创新的精神和在企业级平台建设方面积累的经验可以帮助VMware在这一领域迅速成长,2016年会有更多新产品的发布,我也会及时和大家分享。欢迎关注VMware公司和我的几位同事的公众号:

我的公司:

VMware中国 (威睿账号)

VMware中国研发中心 (研发中心账号)

VMware招聘 (招聘信息)

V记云科技联盟成员

  • 疯云时代(crazycloudtime)

基础架构和应用服务

臧铁军,VMware架构师

  • 乐生活与爱IT(love_life_and_IT) 软件定义存储与虚拟化 叶毓睿, VMware存储架构师
  • 亨利笔记(henglibiji) 容器和云原生应用 张海宁,VMware研发中心首席架构师
  • 最终用户计算(CHINAEUC) 桌面与应用虚拟化 吴孔辉,VMware架构师
  • 大卫分享(david-share) SDDC与IT管理 魏新宇,VMware金融行业售前
  • IT那些事儿(IT-Review)

坐观云卷云舒,笑看IT江湖

尤贵贤,资深技术顾问

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亨利笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概览
  • 体验
  • 集成
  • 后记
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档