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内核上。

docker
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集成流程图。

dockerintegration
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

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中国”

相关文章
|
弹性计算 网络协议 Docker
docker支持IPV6
docker支持IPV6
|
存储 Kubernetes Shell
使用 shell 脚本二进制部署 k8s 环境 [支持 docker 和 containerd]
使用 shell 脚本二进制部署 k8s 环境 [支持 docker 和 containerd]
341 1
|
应用服务中间件 Linux Shell
使用Docker编译OpenResty支持国密ssl加密
OpenResty自身支持标准SSL协议,但不支持国密SSL协议;本文主要概述如何在docker环境下编译OpenResty镜像支持国密SSL加密。
892 0
|
Kubernetes Ubuntu Linux
Docker Desktop 宣布支持 Linux!从被弃用到“憋大招”卷土重来
Docker Desktop 宣布支持 Linux!从被弃用到“憋大招”卷土重来
338 0
Docker Desktop 宣布支持 Linux!从被弃用到“憋大招”卷土重来
EMQ
|
JavaScript 物联网 Linux
MQTT X Newsletter 2022-08 | v1.8.2 发布、支持使用 Docker
八月,MQTT X团队发布了1.8.2版本:新增了使用Docker来安装和部署MQTT X CLI与MQTT X Web,同时MQTT X Web支持了更多的MQTT 5.0属性配置。
EMQ
244 0
MQTT X Newsletter 2022-08 | v1.8.2 发布、支持使用 Docker
|
Kubernetes Ubuntu 安全
遭弃用的 Docker Desktop 放出大招:宣布支持 Linux
当地时间 5 月 10 日,在 DockerCon 2022 上,Docker 首席执行官 Scott Johnston 宣布 Docker Desktop 登陆 Linux,为使用 Linux 桌面环境的开发人员提供与当前在 macOS 和 Windows 上完全相同的 Docker Desktop 体验。
216 0
遭弃用的 Docker Desktop 放出大招:宣布支持 Linux
|
Kubernetes Docker Windows
Docker: 查找支持Windows平台的容器镜像
Docker: 查找支持Windows平台的容器镜像
281 0
Docker: 查找支持Windows平台的容器镜像
|
资源调度 关系型数据库 MySQL
让运行在 Docker 中的 Ghost 支持阿里云 OSS
本篇内容,以封装 Ghost 定制镜像简单说明了如何基于官方镜像进行扩展,并简单示范了 Docker Multistage Build,以及 Ghost 3.x 版本如何使用 Aliyun OSS。
2276 0
|
Docker 容器
2017年OpenStack & Docker六大趋势预测
2017年OpenStack & Docker六大趋势预测   虽然此前已经多次提及,但在这里我要再次强调2015年作为云计算全面崛起元年的重要地位,这在很大程度上是因为这一年内出现了众多值得高度关注的大事件——包括戴尔/EMC的合并,而这些标志性事件意味着新的时代已然来临。
1285 0
|
关系型数据库 Linux 数据库
visual studio中运行docker支持简记
很久以前学过一段时间的docker,那时装了电脑卡得受不了,学了一会就卸载了,最近电脑又装上了docker,感觉好像没有以前这么卡了,还是同一台电脑surface pro4, 试了一下visual studio中做的网站运行在docker上,下面是一些简记 环境:win10 + docker de...
1429 0