本文讲的是使用OpenStack管理Docker容器(一),
【编者的话】本文将讲述如何使用OpenStack创建并管理Docker,有3种流行的使用方法,使用的分别是Nova Docker驱动,Heat Docker插件,以及Magnum。这篇文章分成2部分,第一部分,将主要介绍Nova Docker驱动的用法。第二部分,是关于Heat Docker插件和Magnum。这是序列文章的第一部分。
在这篇文章中,我将介绍一些不同的方法,这些方法是关于OpenStack如何创建,以及管理Docker容器。三种主要的方法分别使用的是Nova Docker驱动,Heat Docker插件,以及Magnum。Magnum比较新颖,现在仍在开发中。OpenStack是开源云编排软件,Docker则是一个开源的容器管理软件。文章中,我假设用户已经熟悉OpenStack和Docker。如果不熟悉的话,那么网上有许多资料可以用来学习OpenStack和Docker,我的博客也可以找到关于 OpenStack 和 Docker 的文章。
Nova Docker Driver
Nova通常用来管理虚拟机。在这种方法中,Nova驱动将会进行扩展,以便用来催生Docker容器。接下来是Nova Docker wiki里面提及的架构示意图。- 为了催生容器,Nova计算驱动将指向Docker。
- Nova Docker Virt驱动使用http api与Docker进行对话
- Docker镜像保存在Docker Registry中,并且从这里暴露给Glance,Nova将会使用Docker Registry创建容器。
Nova Docker 驱动与Devstack
我按照 wiki 里面提到的步骤,在OpenStack Devstack kilo下获取Nova Docker驱动。为了使其可以在我的系统下正常工作,要进行一些镜像调整。我在Virtualbox下使用Ubuntu 14.04进行下列测试,下面是一些主要步骤:- 安装Docker
- 安装Nova Docker插件
- 进行Devstack的堆叠
- 安装Nova-Docker rootwrap过滤器
- 应用Kilo解决方案
- 创建Docker镜像,并将其暴露给Glance
- 由Nova催生Docker容器
1. 安装Docker
Docker可以使用 这里 提到的步骤进行安装。下面是我系统上使用的版本,我已经开启用户访问,这样我就不需要在每个Docker命令中运行sudo。2. 安装Nova Docker插件
wiki里面提到的步骤可以出色的工作。当我在查看驱动时,我使用的是稳定版本的kilo。下面是安装成功后,Nova Docker插件的版本号
3. 进行Devstack的堆叠
首先,检查Devstack Kilo的代码库。我稍微修改了local.conf文件,修改后的版本在 这里 。接下来是进行堆叠。
4. 安装Nova-Docker rootwrap过滤器
wiki里面提到的步骤可以出色的工作。5. 应用Kilo解决方案
堆叠抛出了下面错误:在OpenStack的 邮件列表 讨论过这个问题,解决方法是编辑Docker驱动文件。在我的案例中,文件位于“/usr/local/lib/python2.7/dist-packages/novadocker/virt/docker“。
6. 创建Docker镜像,并将其暴露给Glance
我首先使用 “docker pull nginx" 命令,从Docker Hub抓取Nginx容器接下来将镜像保存到Glance。
现在,查看Glance镜像列表,我们可以看见Docker镜像已经和其他实例镜像在一起了,并且Nginx的类型是Docker。
7. 由Nova催生Docker容器
我们使用Glance里面的镜像,创建nginx容器。Flavor事实上不是那么重要。查看主机里面正在运行的Docker容器。
列出Nova实例:
检查nginx是否正常工作:
谢谢使用nginx。
参考
- OpenStack Docker Wiki
- Nova Docker with Devstack
- Nova Docker github page
- Practical Docker for OpenStack presentation
备注: 文章中使用的图片来自参考列表中的文章。
原文链接:OpenStack with Docker-part 1(翻译:洪国安 审校:李颖杰)
============================================
译者介绍
洪国安,编程爱好者,目前是一名大三学生,希望通过帮社区翻译,提高自己的知识面。
原文发布时间为:2015-06-29
本文作者:Arthur
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:使用OpenStack管理Docker容器(一)