使用OpenStack管理Docker容器(一)
2023-09-27 14:27:26 时间
本文讲的是使用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容器(一)
Docker的容器管理 docker run 等于创建+启动 docker run 镜像名,如果镜像不存在本地,则会在线去下载该镜像。 注意:容器内的进程必须处于前台运行状态,否则容器就会直接退出,自己部署一个容器运行,命令不得后台运行,前台运行即可。 如果容器内,什么事也没做,容器也会挂掉。容器内,必须有一个进程在前台运行。 我们运行nginx基础镜像,没有运行任何程序,因此容器直接挂掉 docker run nginx
容器技术-Docker的优点 当产品运行在内部的虚拟化平台中,如openstack,也就是KVM虚拟化,创建虚拟机,但是不断增加的云端应用,增加了对硬件资源的消耗,不断的创建虚拟机,消耗了大量的硬件资源。 那么如何高效的利用硬件资源实现云服务呢
在这篇文章中,我将介绍一些不同的方法,这些方法是关于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里面提及的架构示意图。
![odocker1.png odocker1.png](http://dockerone.com/uploads/article/20150629/f941fc044322c270ba386289ec817fb6.png)
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。
$ docker --version Docker version 1.6.2, build 7c8fca2
2. 安装Nova Docker插件 wiki里面提到的步骤可以出色的工作。当我在查看驱动时,我使用的是稳定版本的kilo。
git clone -b stable/kilo https://github.com/stackforge/nova-docker.git
下面是安装成功后,Nova Docker插件的版本号
$ sudo pip list | grep nova-docker nova-docker (0.0.1.dev197)
3. 进行Devstack的堆叠 首先,检查Devstack Kilo的代码库。
git clone -b stable/kilo https://github.com/openstack-dev/devstack.git
我稍微修改了local.conf文件,修改后的版本在这里。接下来是进行堆叠。
cd devstack;./stack.sh
4. 安装Nova-Docker rootwrap过滤器 wiki里面提到的步骤可以出色的工作。
sudo cp nova-docker/etc/nova/rootwrap.d/docker.filters \ /etc/nova/rootwrap.d/
5. 应用Kilo解决方案 堆叠抛出了下面错误:
2015-06-03 22:28:57.870 ERROR nova.openstack.common.threadgroup [req-f89bc2cd-5fcc-42e4-a588-ef92ab101fb3 None None] module object has no attribute DOCKER n-cpu.log.2015-06-03-222501:2015-06-03 22:28:57.870 TRACE nova.openstack.common.threadgroup AttributeError: module object has no attribute DOCKER
在OpenStack的邮件列表讨论过这个问题,解决方法是编辑Docker驱动文件。在我的案例中,文件位于“/usr/local/lib/python2.7/dist-packages/novadocker/virt/docker“。
6. 创建Docker镜像,并将其暴露给Glance 我首先使用“docker pull nginx"命令,从Docker Hub抓取Nginx容器
$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE nginx latest a785ba7493fd 2 weeks ago 132.9 MB
接下来将镜像保存到Glance。
docker save nginx | glance image-create --is-public=True --container-format=docker --disk-format=raw --name nginx
现在,查看Glance镜像列表,我们可以看见Docker镜像已经和其他实例镜像在一起了,并且Nginx的类型是Docker。
7. 由Nova催生Docker容器 我们使用Glance里面的镜像,创建nginx容器。Flavor事实上不是那么重要。
nova boot --flavor m1.small --image nginx nginxtest
查看主机里面正在运行的Docker容器。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4f514bc59a41 nginx:latest "nginx -g daemon of 12 seconds ago Up 11 seconds nova-931335f8-ac5c-4c28-967b-25b9474ab2de
列出Nova实例:
$ nova list +--------------------------------------+-----------+--------+------------+-------------+------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+-----------+--------+------------+-------------+------------------+ | 931335f8-ac5c-4c28-967b-25b9474ab2de | nginxtest | ACTIVE | - | Running | private=10.0.0.5 | +--------------------------------------+-----------+--------+------------+-------------+------------------+
检查nginx是否正常工作:
$ curl 10.0.0.5Welcome to 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容器(一)
Docker的容器管理 docker run 等于创建+启动 docker run 镜像名,如果镜像不存在本地,则会在线去下载该镜像。 注意:容器内的进程必须处于前台运行状态,否则容器就会直接退出,自己部署一个容器运行,命令不得后台运行,前台运行即可。 如果容器内,什么事也没做,容器也会挂掉。容器内,必须有一个进程在前台运行。 我们运行nginx基础镜像,没有运行任何程序,因此容器直接挂掉 docker run nginx
容器技术-Docker的优点 当产品运行在内部的虚拟化平台中,如openstack,也就是KVM虚拟化,创建虚拟机,但是不断增加的云端应用,增加了对硬件资源的消耗,不断的创建虚拟机,消耗了大量的硬件资源。 那么如何高效的利用硬件资源实现云服务呢
相关文章
- <转载>Docker 将容器引入大型机
- 虚拟化与Docker容器:云计算旧爱新欢的博弈
- Docker入门 - 005 Docker 容器连接
- docker 报错Failed to start Docker Storage Setup. 的处理基本都是容器满了
- 用 ConfigMap 管理配置 - 每天5分钟玩转 Docker 容器技术(159)
- 环境变量方式使用 Secret - 每天5分钟玩转 Docker 容器技术(158)
- replicated mode vs global mode - 每天5分钟玩转 Docker 容器技术(105)
- 万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)
- Docker 系列三(容器管理).
- 外部访问docker容器(docker run -p/-P 指令)
- 【Docker】docker /var/lib/docker/aufs/mnt 目录满了,全是垃圾数据,咋搞?
- Docker 在外部操作docker容器内部的命令的方法
- Local fabric binaries and docker images are out of sync.
- docker-swarm----多机容器管理
- Shopify的Docker实战经验(二)如何用容器支持10万的在线商店
- 如何在 Docker 容器中连接到本地主机
- 如何强化 Docker 镜像以获得最大安全性
- docker 设置容器时区跟宿主机保持一致
- docker 安装 portainer 来管理容器 (记录 1)