OpenStack将提供对Docker的支持

最近来自Docker官方网站的文章提到,从OpenStack Icehouse开始,Docker将与Heat集成。 而最早在OpenStack Havana 版本中,Docker 已经作为 Nova driver方式与OpenStack集成。本文将首先简单介绍Docker,然后介绍其与OpenStack 的集成。

Docker 简介

Docker 是一个开源的应用容器引擎,可以自动化地部署应用到可移植的的容器中,这些容器独立于硬件、语言、框架、打包系统。一个标准的Docker容器包含一个软件组件及其所有的依赖 ——二进制文件,库,配置文件,脚本等等。Docker扩展了LXC,使用高层的API,提供轻量虚拟化解决方案来实现进程间隔离。可以运行在任何支持 cgroups跟AUFS 的 64位Linux内核上。


Dock可以用来:

docker

  • 自动化打包和部署任何应用
  • 创建一个轻量级私有PaaS云
  • 搭建开发测试环境
  • 部署可扩展的Web应用

Docker 发展迅速, 它的贡献者PaaS云提供商 https://dotcloud.com 2014年1月份获得了B轮1500万美元融资,Docker社区(https://www.docker.io/)也比较活跃,Docker中文社区(http://www.dockboard.org/)最近也在国内多个城市相继成功举行Docker meet up。关于docker更多详细介绍详见 http://www.openstack.cn/p828.html 

Docker与Nova集成

在OpenStack Havana版本中,Docker通过在Nova中以driver的形式与OpenStack的集成,这种实现把Docker容器当作虚拟机来使用。代码链接为 https://github.com/openstack/nova/tree/stable/havana/nova/virt/docker

但在香港OpenStack设计峰会上决定从Nova项目移出Docker driver,放入StackForge项目开发。Openstack的每个项目起初都在StackForge 培育,然后申请进入Incubated项目,考察期满且通过技术委员会投票正式成为Openstack集成项目。OpenStack 项目中Docker driver的主要维护者给出的解释是:“关于这个driver我们已经收到积极的反馈,缺少与Cinder、Neutron的集成是我们面临的障碍,在 StackForge中,允许我们快速迭代开发,持续集成新功能,以便在OpenStack Juno 版本中重新引入”  所以从Icehouse版本开始,Docker driver 代码树为https://github.com/stackforge/nova-docker

下面是Nova Docker driver 与OpenStack集成流程图。

nova docker driver

Nova Docker driver 嵌入一个微小的HTTP 客户端 与 Docker内部REST API 通信,使用HTTP API 来控制Docker容器与获得容器信息。通过配置Glance,Docker 就能从Glance获得跟上传镜像。关于Docker与Nova集成详细配置方法,请详见https://wiki.openstack.org/wiki/Docker

Docker与Heat集成

在OpenStack中,社区更倾向于使 用Heat来协调使用Docker,而不是在Nova中把它当作一种hypervisor 使用。 Nova Docker driver这种方式有些缺点,例如,标准的API 扩展使用虚拟机特有的功能,但这些功能对于Docker并不适用,而且把Docker当作虚拟机来使用,Nova很难利用Docker有用的功能,例如连接容器(主要指Docker容器间通信),基于以上的原因,Heat是更好的选项。

Heat在OpenStack 中提供资源协调功能,与AWS 的 CloudFormation 兼容,允许用户上传描述资源的模版。使用Heat的插件机制,用户可以基于传统OpenStack部署方式部署跟管理Docker容器。Heat 插件已经被OpenStack 社区接受,将包含在Icehouse版本中。代码链接为https://github.com/openstack/heat/tree/master/contrib/docker

下面的例子显示如何使用Heat来协调使用Docker


  1. description: Single compute instance running cirros in a Docker container.
  2.  
  3. resources:
  4.   my_instance:
  5.     type: OS::Nova::Server
  6.     properties:
  7.       key_name: ewindisch_key
  8.       image: ubuntu-precise
  9.       flavor: m1.large
  10.       user_data: #include https://get.docker.io
  11.   my_docker_container:
  12.     type: DockerInc::Docker::Container
  13.     docker_endpoint: { get_attr: [my_instance, first_address] }
  14.     image: cirros

 

dockerheat

heat docker plugin

在上面的例子里,我们只需要添加更多类似”my_docker_container“的片段,就可以创建多个容器并把它们连接起来,它们将不受限于OpenStack API,可以充分利用Docker Remote API。 

结束语

Docker相对于虚拟机由较高的资源利用率,可以秒级部署, 跨平台打包部署应用。在众多PaaS平台产品中发展迅速,获得社区认可与支持,与多个知名项目合作集成。 而与Heat项目的集成,为打通IaaS,PaaS 平台提供了很好的途径。期待Docker在OpenStack Juno版本中与OpenStack Heat项目的更好集成。

原文发布时间为:2014-04-23

本文来自合作伙伴“Linux中国”

时间: 2024-10-27 04:45:50

OpenStack将提供对Docker的支持的相关文章

哪一新OpenStack项目能改进容器的支持?

开源平台,如OpenStack,一直在不断进化,随着对新技术的支持,如容器. OpenStack社区致力于落实和完善容器支持,从OpenStack项目的更新就可看到这一点.例如,2015年10月OpenStack Liberty版本实现了Magnum模型,来支持三大容器编排引擎:Docker.谷歌Kubernetes和Apache Mesos.另外,OpenStack的Ironic模型能够支持裸金属容器部署. 但是,更多的OpenStack容器更新正在酝酿着.有几个OpenStack项目目的在于

Docker 如何支持多种日志方案?- 每天5分钟玩转 Docker 容器技术(88)

将容器日志发送到 STDOUT 和 STDERR 是 Docker 的默认日志行为.实际上,Docker 提供了多种日志机制帮助用户从运行的容器中提取日志信息.这些机制被称作 logging driver.  Docker 的默认 logging driver 是 json-file. # docker info |grep 'Logging Driver'Logging Driver: json-file 如果容器在启动时没有特别指明,就会使用这个默认的 logging driver. jso

国内首家 Docker新增支持阿里云OSS

近年来,开源的容器应用引擎Docker在企业IT市场中风生水起,短短两年内,建立在Docker容器软件内的应用被下载5.35亿次.全球约有400万人在使用Docker,约有150,000个在线应用靠Docker容器运行,大型企业正在空前快速地测试或计划采用Docker,胜过其他任何开源的云端产品. 8月12日,Docker1.8和Docker Registry 2.1发布,新版本中加入了Docker Registry对阿里云开放存储服务的正式支持,阿里云成为被Docker官方支持的存储服务的云服

谷歌将在11月晚些时候停止为黑莓手机提供Gmail原生应用支持

摘要: 11月10日消息,据国外媒体报道,谷歌今日发布了一个生命终期声明.谷歌在该声明中表示,其将在11月晚些时候停止为黑莓手机提供Gmail原生应用支持. 谷歌表示,由于公司正集中精力 11月10日消息,据国外媒体报道,谷歌今日发布了一个"生命终期"声明.谷歌在该声明中表示,其将在11月晚些时候停止为黑莓手机提供Gmail原生应用支持. 谷歌表示,由于公司正集中精力为移动网络浏览器提供更强大的Gmail体验,这个"生命终期"声明将于11月22日正式生效.从11月2

微软和红帽为用户提供虚拟化平台互操作支持

Red Hat Inc. 是开放来源的软件和产品和提供全球性的服务的主导开发商和提供者.公司的产品包括Red Hat Linux操作系统.不同于私有的软件, 开放来源的软件有公开可利用的原始代码, 可被最小之物复制, 修改和分销.该网站, REDHAT.COM, 是关于开放来源软件的主导网上信息和新闻来源和最大的开放来源软件用户和开发商的网上小区之一.  早在2000年,红帽便联同合作伙伴一起进军中国市场,分销红帽产品.2004年11月,红帽在北京设立办事处以便更好地服务中国市场.  自中国向全

微软在线全新起航:独家提供Skype广告业务支持

微软在线全新起航:独家提供Skype广告业务支持昨日,MSN中国正式更名为微软在线(Microsoft,Online),涵盖MSN中文网.必应搜索.Windows,AiA.Windows,Phone,AiA.Xbox,One,和Skype等.这也标志着,微软在我国的互联网业务迈入一个全 新的发展阶段.尽管MSN中文网得以保留,但值得注意的是,大家所熟悉的MSN--即时通讯软件Windows,Live,Messenger已经被Skype取而代之.此次更名,微软在线特别提到了Skype,没有Mess

Dropbox与微软达成合作协议 提供原生云存储支持

DoNews 11月5日消息(记者 安宏)正所谓没有永远的敌人,微软今日宣布与在线http://www.aliyun.com/zixun/aggregation/18450.html">文件共享公司Dropbox达成原生云存储合作协议,允许Office软件用户通过Dropbox网站和移动应用管理和分享文件,而后者则将为微软提供原生云存储支持,以加强集成Office的PC.移动和云端应用. 根据协议,Dropbox用户将可以通过原有账户与微软Office iPad应用关联,从而支持快速地文件

OpenStack Magnum如何部署Docker Swarm等容器

OpenStack Magnum通常用于部署和监控容器--如Docker Swarm.Google Kubernetes 和 Apache Mesos等,但是除此之外这个项目还有一些其他有用工具. 易于部署,并且体积要比hypervisor小很多,这些都是容器技术日益流行的原因,此外,单个容器只需要完成特定任务.现在最为常见的三种容器是Docker Swarm.Google Kubernetes和Apache Mesos. 使用容器技术,管理员能够部署完整应用或者是应用的重要组成部分,并且其体积

在WebSphere Application Server V7中为WS-Addressing提供JAX-WS 2.1支持

IBM WebSphere Application Server V7 包括了对 Java API for XML-Based Web Services (JAX-WS) 2.1 规范的支持.JAX-WS 2.1 是 Java Specification Request (JSR) 224 的维护版本,通过增加新功能对 JAX-WS 2.0 规范提供的功能进行了扩展.其中最重要的新功能就是 在应用程序编程接口(Application Programming Interface,API)中支持 W