Download presentation
Presentation is loading. Please wait.
1
Docker简介及与OpenStack集成
Oct 2014 Docker简介及与OpenStack集成 Sina 主要两块 简单介绍docker OpenStack Docker集成
2
调查 多少人听说过docker? 多少人玩过docker? 有没有人在生产环境使用docker?
3
什么是Docker Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎,源代码托管在 GitHub 上, 基于Go语言开发并遵从Apache 2.0协议开源。
4
Docker带来虚拟化手段的变化 VM Instance - Guest OS = Container
5
Docker安装 内核大于等于2.6.32-431 安装与平台支持
6
Docker的主要概念 镜像 image 容器 Container 仓库 Repo Dockerfile 创建docker镜像
7
docker build -t your-tag .
Dockerfile实例 docker build -t your-tag .
8
https://docs.docker.com/userguide/usingdocker/
Docker的简单使用 -p 的意思就是 把dockerfile中EXPOSE的所有端口都映射到docker server上
9
Docker端口映射
10
Docker工作流
11
当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟网络接口 Docker0作为容器的网关
docker0并不是正常的网络接口。它只是一个在绑定在docker server上的虚拟以太网桥。它可以使容器与主机相互通信以及容器之间的通信。每次Docker创建一个容器,它就会创建一对对等接口(peer interface),类似于一个管子的两端-在这边可以收到另一边发送的数据包。Docke会将对等接口中的一个做为eth0接口连接到容器上, demo 当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟网络接口 Docker0作为容器的网关
12
docker run -i -t --net=host image command 优点
Docker网络(host模式) docker run -i -t --net=host image command 优点 Docker容器和Docker服务器的网络配置相同。 不需要复杂的网络配置就可以保证 缺点 端口不能冲突
13
Ovs+GRE保证不同docker服务器上的容器可以通信
Docker网络(OVS+GRE) OpenStack nova-docker driver有这种模式 我是手动配置的,为了保证IP不冲突,我将docker0设置为不一样的 demo Ovs+GRE保证不同docker服务器上的容器可以通信
14
Docker网络(大使模式1) c2->redis_ambassado( )->network->redis_ambassado( )->redis
15
Docker网络(大使模式1)
16
Docker相关 Google Kubernets Tutum CoreOS http://panamax.io/
Google开源的一套Docker集群管理工具 Tutum 提供了一套非常友好的dashboard 支持创建docker container的application CoreOS CoreOS是一个基于Docker的轻量级容器化Linux发行版,专为大型数据中心而设计 通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复杂度 主要是通过dashboard简化docker应用的部署,类似于Tutum 基于Docker的十大创业公司
17
Docker集成 OpenStack + Docker Hadoop + Docker Spark + Docker Mesos + Docker
18
Docker与OpenStack集成 Nova集成 HEAT集成 Container As A Service
通过Nova compute来实现 添加了一个新的nova docker drvier。 HEAT集成 添加了一个新的HEAT Resource:DockerInc::Docker::Container HEAT docker driver直接与docker server交互 没有和nova,cinder,neutron等交互 Container As A Service 为OpenStack添加一个新的服务来管理docker container Kilo blueprint: 设计文档:
19
Docker与OpenStack Nova的集成
工作原理 使用DockerHTTPClient去访问一组Docker HTTP API来管理container 参考 Nova Docker driver这种方式有些缺点,例如,标准的API 扩展使用虚拟机特有的功能,但这些功能对于Docker并不适用,而且把Docker当作虚拟机来使用,Nova很难利用Docker有用的功能, 例如连接容器(主要指Docker容器间通信),基于以上的原因,Heat是更好的选项。
20
Docker与OpenStack HEAT的集成
工作原理 使用Docker Python客户端去访问一组Docker HTTP API来管理container 参考
21
Wordpress Docker Template
22
Docker运行实例
23
Nova和HEAT Docker Driver集成
24
Container As A Service (Kilo Blueprint)
为OpenStack添加一个新的服务来管理docker container Container Service是Container的一个集中管理服务 通过Gantt来进行资源调度,挑选docker server来部署container 可以on-demand去创建nova instance
25
参考 Google “OpenStack Docker HEAT NOVA”
26
Thanks!
Similar presentations