SlideShare a Scribd company logo
1 of 26
Oct 2014 
Docker简介及与OpenStack集成 
刘光亚(liugya@cn.ibm.com) 
Sina weibo: @platformer
调查 
2 © 2013 IBM Corporation 
IBM Technical Computing 
• 多少人听说过docker? 
• 多少人玩过docker? 
• 有没有人在生产环境使用docker?
• Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎 
,源代码托管在GitHub 上, 基于Go语言开发并遵从Apache 2.0协 
议开源。 
3 © 2013 IBM Corporation 
IBM Technical Computing 
什么是Docker
4 © 2013 IBM Corporation 
IBM Technical Computing 
Docker带来虚拟化手段的变化 
VM Instance 
- Guest OS 
= Container
Docker安装 
5 © 2013 IBM Corporation 
IBM Technical Computing 
• 内核大于等于2.6.32-431 
• 安装与平台支持 
– https://docs.docker.com/installation/
Docker的主要概念 
6 © 2013 IBM Corporation 
IBM Technical Computing 
• 镜像image 
• 容器Container 
• 仓库Repo 
• Dockerfile 
– 创建docker镜像
7 © 2013 IBM Corporation 
IBM Technical Computing 
Dockerfile实例 
docker build -t your-tag . 
• https://docs.docker.com/examples/nodejs_web_app/#creating-a- 
dockerfile
8 © 2013 IBM Corporation 
IBM Technical Computing 
Docker的简单使用 
• https://docs.docker.com/userguide/usingdocker/
Port1 Port2 Port3 Port4 
9 © 2013 IBM Corporation 
IBM Technical Computing 
Docker端口映射 
hostA hostB 
Docker 
docker0 
172.17.42.1 
docker0 
172.17.42.1 
Docker 
Container1 
eth0 
172.17.42.2 
Container2 
eth0 
172.17.42.3 
Container3 
eth0 
172.17.42.2 
Container4 
eth0 
172.17.42.3 
eth0 
9.111.244.173 
eth0 
9.111.244.48 
Port11 
Port22 Port33 Port44 
Access to Docker
10 © 2013 IBM Corporation 
IBM Technical Computing 
Docker工作流
hostA hostB 
11 © 2013 IBM Corporation 
IBM Technical Computing 
Docker网络 
• 当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟 
网络接口 
• Docker0作为容器的网关 
Docker 
docker0 
172.17.42.1 
docker0 
172.17.42.1 
Docker 
Container1 
eth0 
172.17.42.2 
Container2 
eth0 
172.17.42.3 
Container3 
eth0 
172.17.42.2 
Container4 
eth0 
172.17.42.3 
eth0 
9.111.244.173 
eth0 
9.111.244.48 
???
hostA hostB 
Container 1 Container 2 Container 3 Container 4 
9.111.244.173 
12 © 2013 IBM Corporation 
IBM Technical Computing 
Docker网络(host模式) 
eth0 
• docker run -i -t --net=host image command 
• 优点 
– Docker容器和Docker服务器的网络配置相同。 
– 不需要复杂的网络配置就可以保证 
• 缺点 
– 端口不能冲突 
eth0 
9.111.244.48
U1301-1 U1301-2 
Docker 
docker0 
172.17.42.2 
172.17.42.3 
172.17.42.1 
docker0 
172.17.41.1 
Docker 
Container1 
eth0 
Container2 
eth0 
Container3 
eth0 
172.17.41.2 
Open vSwitch Open vSwitch 
13 © 2013 IBM Corporation 
IBM Technical Computing 
Docker网络(OVS+GRE) 
br0 gre0 gre0 br0 
• Ovs+GRE保证不同docker服务器上的容器可以通信 
Container4 
eth0 
172.17.41.3 
eth0 
9.111.244.173 
eth0 
9.111.244.48
14 © 2013 IBM Corporation 
IBM Technical Computing 
Docker网络(大使模式1) 
9.21.63.233 
Server Container 
(redis) 
Expose Port 
6379 
Ambassador 
Container 
(redis_ambassado) 
Mapped Port 
6379 
9.21.63.230 
Client Container 
(c2) 
Ambassador 
Container 
(redis_ambassado) 
Expose Port 
6379 
Expose Port 
6379 
c2->redis_ambassado(9.21.63.230)->network->redis_ambassado(9.21.63.233)->redis
15 © 2013 IBM Corporation 
IBM Technical Computing 
Docker网络(大使模式1) 
9.21.63.233 
Server Container 
(redis) 
Expose Port 
6379, 6380 
Ambassador 
Container 
(redis_ambassado) 
Mapped Port 
6379, 6380 
9.21.63.230 
Client Container 
(redis_client1) 
Connect to Port 6379 
Ambassador 
Container 
(redis_ambassado) 
Expose Port 
6379, 6380 
Expose Port 
6379, 6380 
Client Container 
(redis_client1) 
Connect to Port 6380
Docker相关 
16 © 2013 IBM Corporation 
IBM Technical Computing 
• Google Kubernets 
– Google开源的一套Docker集群管理工具 
– https://github.com/GoogleCloudPlatform/kubernetes 
• Tutum 
– 提供了一套非常友好的dashboard 
– 支持创建docker container的application 
• CoreOS 
– CoreOS是一个基于Docker的轻量级容器化Linux发行版,专为大型数据中心而设 
计 
– 通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复 
杂度 
• http://panamax.io/ 
– 主要是通过dashboard简化docker应用的部署,类似于Tutum 
• 基于Docker的十大创业公司
Docker集成 
17 © 2013 IBM Corporation 
IBM Technical Computing 
• OpenStack + Docker 
• Hadoop + Docker 
• Spark + Docker 
• Mesos + Docker 
• http://mesosphere.com/
Docker与OpenStack集成 
18 © 2013 IBM Corporation 
IBM Technical Computing 
• Nova集成 
– 通过Nova compute来实现 
– 添加了一个新的nova docker drvier。https://github.com/stackforge/nova-docker 
• HEAT集成 
– 添加了一个新的HEAT Resource:DockerInc::Docker::Container 
– HEAT docker driver直接与docker server交互 
– 没有和nova,cinder,neutron等交互 
• Container As A Service 
– 为OpenStack添加一个新的服务来管理docker container 
– Kilo blueprint:https://review.openstack.org/#/c/114044/ 
– 设计文档:https://wiki.openstack.org/w/images/5/51/Containers_Proposal.pdf
19 © 2013 IBM Corporation 
IBM Technical Computing 
Docker与OpenStack Nova的集成 
• 工作原理 
– 使用 
DockerHTTPClient去 
访问一组Docker HTTP 
API来管理container 
• 参考 
– https://github.com/ 
stackforge/nova-docker 
– https://wiki.openst 
ack.org/wiki/Docker
20 © 2013 IBM Corporation 
IBM Technical Computing 
Docker与OpenStack HEAT的集成 
• 工作原理 
– 使用Docker Python客 
户端去访问一组 
Docker HTTP API来管 
理container 
• 参考 
– https://github.com/Mar 
ouenMechtri/Docker-containers-deployment- 
with- 
OpenStack-Heat
21 © 2013 IBM Corporation 
IBM Technical Computing 
Wordpress Docker Template
22 © 2013 IBM Corporation 
IBM Technical Computing 
Docker运行实例
23 © 2013 IBM Corporation 
IBM Technical Computing 
Nova和HEAT Docker Driver集成 
• https://github.com/MarouenMechtri/Docker-containers-deployment-with-OpenStack-Heat 
• http://techs.enovance.com/7104/multi-tenant-docker-with-openstack-heat
24 © 2013 IBM Corporation 
IBM Technical Computing 
Container As A Service (Kilo Blueprint) 
• 为OpenStack添加一个新的服务来管理docker container 
• Container Service是Container的一个集中管理服务 
• 通过Gantt来进行资源调度,挑选docker server来部署 
container 
• 可以on-demand去创建nova instance
参考 
25 © 2013 IBM Corporation 
IBM Technical Computing 
• Google “OpenStack Docker HEAT NOVA”
26 © 2013 IBM Corporation 
IBM Technical Computing 
Thanks!

More Related Content

What's hot

開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018Will Huang
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践YuLing Liu
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer TalkLarry Cai
 
cec-hello-docker
cec-hello-dockercec-hello-docker
cec-hello-dockerBruce Huang
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机EdwardBadBoy
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門azole Lai
 
OpenStack and Docke Integration V6
OpenStack and Docke Integration V6OpenStack and Docke Integration V6
OpenStack and Docke Integration V6Guangya Liu
 
Kubernetes project update and how to contribute
Kubernetes project update and how to contributeKubernetes project update and how to contribute
Kubernetes project update and how to contributeinwin stack
 
AWS EC2 for beginner
AWS EC2 for beginnerAWS EC2 for beginner
AWS EC2 for beginnerazole Lai
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探仲昀 王
 
Openstack nova
Openstack novaOpenstack nova
Openstack novaYong Luo
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWill Huang
 
Cloudstack dev/user sharing
Cloudstack dev/user sharingCloudstack dev/user sharing
Cloudstack dev/user sharinggavin_lee
 
Docker workshop
Docker workshopDocker workshop
Docker workshopWei Tung
 

What's hot (20)

開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
 
Docker
DockerDocker
Docker
 
Docker應用
Docker應用Docker應用
Docker應用
 
Docker 最佳实践
Docker 最佳实践Docker 最佳实践
Docker 最佳实践
 
Docker Build
Docker BuildDocker Build
Docker Build
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
Docker實務
Docker實務Docker實務
Docker實務
 
Software Engineer Talk
Software Engineer TalkSoftware Engineer Talk
Software Engineer Talk
 
cec-hello-docker
cec-hello-dockercec-hello-docker
cec-hello-docker
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机
 
20150604 docker 新手入門
20150604 docker 新手入門20150604 docker 新手入門
20150604 docker 新手入門
 
微服務自己動手做
微服務自己動手做微服務自己動手做
微服務自己動手做
 
OpenStack and Docke Integration V6
OpenStack and Docke Integration V6OpenStack and Docke Integration V6
OpenStack and Docke Integration V6
 
Kubernetes project update and how to contribute
Kubernetes project update and how to contributeKubernetes project update and how to contribute
Kubernetes project update and how to contribute
 
AWS EC2 for beginner
AWS EC2 for beginnerAWS EC2 for beginner
AWS EC2 for beginner
 
認識那條鯨魚 Docker 初探
認識那條鯨魚   Docker 初探認識那條鯨魚   Docker 初探
認識那條鯨魚 Docker 初探
 
Openstack nova
Openstack novaOpenstack nova
Openstack nova
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
 
Cloudstack dev/user sharing
Cloudstack dev/user sharingCloudstack dev/user sharing
Cloudstack dev/user sharing
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 

Viewers also liked

Docker Multihost Networking
Docker Multihost Networking Docker Multihost Networking
Docker Multihost Networking Nicola Kabar
 
Kubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupKubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupMist.io
 
Tutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingTutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingLorisPack Project
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101LorisPack Project
 
Resume Shavez Hasan (1)
Resume Shavez Hasan (1)Resume Shavez Hasan (1)
Resume Shavez Hasan (1)Shavez Mirza
 
PerfUG 3 - perfs système
PerfUG 3 - perfs systèmePerfUG 3 - perfs système
PerfUG 3 - perfs systèmeLudovic Piot
 
Dev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebDev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebMicrosoft
 
Openstack benelux 2015
Openstack benelux 2015Openstack benelux 2015
Openstack benelux 2015Microsoft
 
Corredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola CreoleCorredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola Creoleguesta96e92
 
Deploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaSDeploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaSAppsembler
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityLudovic Piot
 
New Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 betaNew Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 betaGiragadurai Vallirajan
 
Movie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIsMovie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIsSmitha Mysore Lokesh
 
Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Christoph Görn
 
Intro to Mahout
Intro to MahoutIntro to Mahout
Intro to MahoutUri Lavi
 
From legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourseFrom legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourseisshan
 
Scalling development teams using Docker
Scalling development teams using DockerScalling development teams using Docker
Scalling development teams using DockerDaniel Oliveira Filho
 
Las redes sociales 1ro a
Las redes sociales 1ro aLas redes sociales 1ro a
Las redes sociales 1ro aMariuxi Cuasqui
 

Viewers also liked (20)

Docker Multihost Networking
Docker Multihost Networking Docker Multihost Networking
Docker Multihost Networking
 
Kubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupKubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetup
 
Docker Networking
Docker NetworkingDocker Networking
Docker Networking
 
Tutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networkingTutorial on using CoreOS Flannel for Docker networking
Tutorial on using CoreOS Flannel for Docker networking
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 
Resume Shavez Hasan (1)
Resume Shavez Hasan (1)Resume Shavez Hasan (1)
Resume Shavez Hasan (1)
 
PerfUG 3 - perfs système
PerfUG 3 - perfs systèmePerfUG 3 - perfs système
PerfUG 3 - perfs système
 
DailyTranslate Brochure
DailyTranslate BrochureDailyTranslate Brochure
DailyTranslate Brochure
 
Dev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebDev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leaseweb
 
Openstack benelux 2015
Openstack benelux 2015Openstack benelux 2015
Openstack benelux 2015
 
Corredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola CreoleCorredor Norte De La Isla Hispaniola Creole
Corredor Norte De La Isla Hispaniola Creole
 
Deploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaSDeploy Python apps in 5 min with a PaaS
Deploy Python apps in 5 min with a PaaS
 
Docker meetup - PaaS interoperability
Docker meetup - PaaS interoperabilityDocker meetup - PaaS interoperability
Docker meetup - PaaS interoperability
 
New Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 betaNew Features of Kubernetes v1.2.0 beta
New Features of Kubernetes v1.2.0 beta
 
Movie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIsMovie recommendation system using Apache Mahout and Facebook APIs
Movie recommendation system using Apache Mahout and Facebook APIs
 
Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)Maintaining an up to date application stack (in a containerized world)
Maintaining an up to date application stack (in a containerized world)
 
Intro to Mahout
Intro to MahoutIntro to Mahout
Intro to Mahout
 
From legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourseFrom legacy to modern CI/CD in tis with concourse
From legacy to modern CI/CD in tis with concourse
 
Scalling development teams using Docker
Scalling development teams using DockerScalling development teams using Docker
Scalling development teams using Docker
 
Las redes sociales 1ro a
Las redes sociales 1ro aLas redes sociales 1ro a
Las redes sociales 1ro a
 

Similar to Docker open stack

docker intro
docker introdocker intro
docker introkoji lin
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训青帅 常
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShopPhilip Zheng
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作Philip Zheng
 
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术团队
 
Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Ch Rick
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)Will Huang
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽Will Huang
 
K8s removes dockershime
K8s removes dockershimeK8s removes dockershime
K8s removes dockershimePhilip Zheng
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲ChinaNetCloud
 
Docker
DockerDocker
DockerNCUDSC
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛Edward Kuo
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出Miles Chou
 
kubernetes入门培训
kubernetes入门培训kubernetes入门培训
kubernetes入门培训bobo45284
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養Philip Zheng
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討國昭 張
 
From docker hub to bluemix catalog
From docker hub to bluemix catalogFrom docker hub to bluemix catalog
From docker hub to bluemix catalogJoseph Chang
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Li Yi
 

Similar to Docker open stack (20)

docker intro
docker introdocker intro
docker intro
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训
 
Docker容器微服務 x WorkShop
Docker容器微服務 x WorkShopDocker容器微服務 x WorkShop
Docker容器微服務 x WorkShop
 
桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作桃園市教育局Docker技術入門與實作
桃園市教育局Docker技術入門與實作
 
美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台美团点评技术沙龙14美团云-Docker平台
美团点评技术沙龙14美团云-Docker平台
 
Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器Azure Container Service 使用 DC / OS 管理 docker 容器
Azure Container Service 使用 DC / OS 管理 docker 容器
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
 
K8s removes dockershime
K8s removes dockershimeK8s removes dockershime
K8s removes dockershime
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
 
Docker
DockerDocker
Docker
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
Docker 淺入淺出
Docker 淺入淺出Docker 淺入淺出
Docker 淺入淺出
 
kubernetes入门培训
kubernetes入门培训kubernetes入门培训
kubernetes入门培训
 
企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養企業導入容器經驗分享與開源技能培養
企業導入容器經驗分享與開源技能培養
 
Docker 101
Docker 101Docker 101
Docker 101
 
Docker進階探討
Docker進階探討Docker進階探討
Docker進階探討
 
From docker hub to bluemix catalog
From docker hub to bluemix catalogFrom docker hub to bluemix catalog
From docker hub to bluemix catalog
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
 

More from Guangya Liu

IBM Cloud Private Introduction
IBM Cloud Private IntroductionIBM Cloud Private Introduction
IBM Cloud Private IntroductionGuangya Liu
 
Docker volume-isolator-in-mesos
Docker volume-isolator-in-mesosDocker volume-isolator-in-mesos
Docker volume-isolator-in-mesosGuangya Liu
 
Open source-summit-k8 s-mesos-v7
Open source-summit-k8 s-mesos-v7Open source-summit-k8 s-mesos-v7
Open source-summit-k8 s-mesos-v7Guangya Liu
 
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mesos vs Kubernetes: What We Learned Working With Both For Chinese CustomersMesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mesos vs Kubernetes: What We Learned Working With Both For Chinese CustomersGuangya Liu
 
Ibm dnt-dcos-v9-3
Ibm dnt-dcos-v9-3Ibm dnt-dcos-v9-3
Ibm dnt-dcos-v9-3Guangya Liu
 
Mesos con 2015 recap meetup-v2
Mesos con 2015 recap meetup-v2Mesos con 2015 recap meetup-v2
Mesos con 2015 recap meetup-v2Guangya Liu
 
Pairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryPairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryGuangya Liu
 
OpenStack Resource Scheduling
OpenStack Resource SchedulingOpenStack Resource Scheduling
OpenStack Resource SchedulingGuangya Liu
 
Organizing open stack-meetup-in-china
Organizing open stack-meetup-in-chinaOrganizing open stack-meetup-in-china
Organizing open stack-meetup-in-chinaGuangya Liu
 

More from Guangya Liu (10)

Istio简介
Istio简介Istio简介
Istio简介
 
IBM Cloud Private Introduction
IBM Cloud Private IntroductionIBM Cloud Private Introduction
IBM Cloud Private Introduction
 
Docker volume-isolator-in-mesos
Docker volume-isolator-in-mesosDocker volume-isolator-in-mesos
Docker volume-isolator-in-mesos
 
Open source-summit-k8 s-mesos-v7
Open source-summit-k8 s-mesos-v7Open source-summit-k8 s-mesos-v7
Open source-summit-k8 s-mesos-v7
 
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mesos vs Kubernetes: What We Learned Working With Both For Chinese CustomersMesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
Mesos vs Kubernetes: What We Learned Working With Both For Chinese Customers
 
Ibm dnt-dcos-v9-3
Ibm dnt-dcos-v9-3Ibm dnt-dcos-v9-3
Ibm dnt-dcos-v9-3
 
Mesos con 2015 recap meetup-v2
Mesos con 2015 recap meetup-v2Mesos con 2015 recap meetup-v2
Mesos con 2015 recap meetup-v2
 
Pairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryPairs OpenStack Summit Summary
Pairs OpenStack Summit Summary
 
OpenStack Resource Scheduling
OpenStack Resource SchedulingOpenStack Resource Scheduling
OpenStack Resource Scheduling
 
Organizing open stack-meetup-in-china
Organizing open stack-meetup-in-chinaOrganizing open stack-meetup-in-china
Organizing open stack-meetup-in-china
 

Docker open stack

  • 1. Oct 2014 Docker简介及与OpenStack集成 刘光亚(liugya@cn.ibm.com) Sina weibo: @platformer
  • 2. 调查 2 © 2013 IBM Corporation IBM Technical Computing • 多少人听说过docker? • 多少人玩过docker? • 有没有人在生产环境使用docker?
  • 3. • Docker是PaaS供应商dotCloud开源的一个基于LXC 的高级容器引擎 ,源代码托管在GitHub 上, 基于Go语言开发并遵从Apache 2.0协 议开源。 3 © 2013 IBM Corporation IBM Technical Computing 什么是Docker
  • 4. 4 © 2013 IBM Corporation IBM Technical Computing Docker带来虚拟化手段的变化 VM Instance - Guest OS = Container
  • 5. Docker安装 5 © 2013 IBM Corporation IBM Technical Computing • 内核大于等于2.6.32-431 • 安装与平台支持 – https://docs.docker.com/installation/
  • 6. Docker的主要概念 6 © 2013 IBM Corporation IBM Technical Computing • 镜像image • 容器Container • 仓库Repo • Dockerfile – 创建docker镜像
  • 7. 7 © 2013 IBM Corporation IBM Technical Computing Dockerfile实例 docker build -t your-tag . • https://docs.docker.com/examples/nodejs_web_app/#creating-a- dockerfile
  • 8. 8 © 2013 IBM Corporation IBM Technical Computing Docker的简单使用 • https://docs.docker.com/userguide/usingdocker/
  • 9. Port1 Port2 Port3 Port4 9 © 2013 IBM Corporation IBM Technical Computing Docker端口映射 hostA hostB Docker docker0 172.17.42.1 docker0 172.17.42.1 Docker Container1 eth0 172.17.42.2 Container2 eth0 172.17.42.3 Container3 eth0 172.17.42.2 Container4 eth0 172.17.42.3 eth0 9.111.244.173 eth0 9.111.244.48 Port11 Port22 Port33 Port44 Access to Docker
  • 10. 10 © 2013 IBM Corporation IBM Technical Computing Docker工作流
  • 11. hostA hostB 11 © 2013 IBM Corporation IBM Technical Computing Docker网络 • 当docker启动时,它会在宿主机器上创建一个名为docker0的虚拟 网络接口 • Docker0作为容器的网关 Docker docker0 172.17.42.1 docker0 172.17.42.1 Docker Container1 eth0 172.17.42.2 Container2 eth0 172.17.42.3 Container3 eth0 172.17.42.2 Container4 eth0 172.17.42.3 eth0 9.111.244.173 eth0 9.111.244.48 ???
  • 12. hostA hostB Container 1 Container 2 Container 3 Container 4 9.111.244.173 12 © 2013 IBM Corporation IBM Technical Computing Docker网络(host模式) eth0 • docker run -i -t --net=host image command • 优点 – Docker容器和Docker服务器的网络配置相同。 – 不需要复杂的网络配置就可以保证 • 缺点 – 端口不能冲突 eth0 9.111.244.48
  • 13. U1301-1 U1301-2 Docker docker0 172.17.42.2 172.17.42.3 172.17.42.1 docker0 172.17.41.1 Docker Container1 eth0 Container2 eth0 Container3 eth0 172.17.41.2 Open vSwitch Open vSwitch 13 © 2013 IBM Corporation IBM Technical Computing Docker网络(OVS+GRE) br0 gre0 gre0 br0 • Ovs+GRE保证不同docker服务器上的容器可以通信 Container4 eth0 172.17.41.3 eth0 9.111.244.173 eth0 9.111.244.48
  • 14. 14 © 2013 IBM Corporation IBM Technical Computing Docker网络(大使模式1) 9.21.63.233 Server Container (redis) Expose Port 6379 Ambassador Container (redis_ambassado) Mapped Port 6379 9.21.63.230 Client Container (c2) Ambassador Container (redis_ambassado) Expose Port 6379 Expose Port 6379 c2->redis_ambassado(9.21.63.230)->network->redis_ambassado(9.21.63.233)->redis
  • 15. 15 © 2013 IBM Corporation IBM Technical Computing Docker网络(大使模式1) 9.21.63.233 Server Container (redis) Expose Port 6379, 6380 Ambassador Container (redis_ambassado) Mapped Port 6379, 6380 9.21.63.230 Client Container (redis_client1) Connect to Port 6379 Ambassador Container (redis_ambassado) Expose Port 6379, 6380 Expose Port 6379, 6380 Client Container (redis_client1) Connect to Port 6380
  • 16. Docker相关 16 © 2013 IBM Corporation IBM Technical Computing • Google Kubernets – Google开源的一套Docker集群管理工具 – https://github.com/GoogleCloudPlatform/kubernetes • Tutum – 提供了一套非常友好的dashboard – 支持创建docker container的application • CoreOS – CoreOS是一个基于Docker的轻量级容器化Linux发行版,专为大型数据中心而设 计 – 通过轻量的系统架构和灵活的应用程序部署能力简化数据中心的维护成本和复 杂度 • http://panamax.io/ – 主要是通过dashboard简化docker应用的部署,类似于Tutum • 基于Docker的十大创业公司
  • 17. Docker集成 17 © 2013 IBM Corporation IBM Technical Computing • OpenStack + Docker • Hadoop + Docker • Spark + Docker • Mesos + Docker • http://mesosphere.com/
  • 18. Docker与OpenStack集成 18 © 2013 IBM Corporation IBM Technical Computing • Nova集成 – 通过Nova compute来实现 – 添加了一个新的nova docker drvier。https://github.com/stackforge/nova-docker • HEAT集成 – 添加了一个新的HEAT Resource:DockerInc::Docker::Container – HEAT docker driver直接与docker server交互 – 没有和nova,cinder,neutron等交互 • Container As A Service – 为OpenStack添加一个新的服务来管理docker container – Kilo blueprint:https://review.openstack.org/#/c/114044/ – 设计文档:https://wiki.openstack.org/w/images/5/51/Containers_Proposal.pdf
  • 19. 19 © 2013 IBM Corporation IBM Technical Computing Docker与OpenStack Nova的集成 • 工作原理 – 使用 DockerHTTPClient去 访问一组Docker HTTP API来管理container • 参考 – https://github.com/ stackforge/nova-docker – https://wiki.openst ack.org/wiki/Docker
  • 20. 20 © 2013 IBM Corporation IBM Technical Computing Docker与OpenStack HEAT的集成 • 工作原理 – 使用Docker Python客 户端去访问一组 Docker HTTP API来管 理container • 参考 – https://github.com/Mar ouenMechtri/Docker-containers-deployment- with- OpenStack-Heat
  • 21. 21 © 2013 IBM Corporation IBM Technical Computing Wordpress Docker Template
  • 22. 22 © 2013 IBM Corporation IBM Technical Computing Docker运行实例
  • 23. 23 © 2013 IBM Corporation IBM Technical Computing Nova和HEAT Docker Driver集成 • https://github.com/MarouenMechtri/Docker-containers-deployment-with-OpenStack-Heat • http://techs.enovance.com/7104/multi-tenant-docker-with-openstack-heat
  • 24. 24 © 2013 IBM Corporation IBM Technical Computing Container As A Service (Kilo Blueprint) • 为OpenStack添加一个新的服务来管理docker container • Container Service是Container的一个集中管理服务 • 通过Gantt来进行资源调度,挑选docker server来部署 container • 可以on-demand去创建nova instance
  • 25. 参考 25 © 2013 IBM Corporation IBM Technical Computing • Google “OpenStack Docker HEAT NOVA”
  • 26. 26 © 2013 IBM Corporation IBM Technical Computing Thanks!

Editor's Notes

  1. 主要两块 简单介绍docker OpenStack Docker集成
  2. -p 的意思就是 把dockerfile中EXPOSE的所有端口都映射到docker server上
  3. docker0并不是正常的网络接口。它只是一个在绑定在docker server上的虚拟以太网桥。它可以使容器与主机相互通信以及容器之间的通信。每次Docker创建一个容器,它就会创建一对对等接口(peer interface),类似于一个管子的两端-在这边可以收到另一边发送的数据包。Docke会将对等接口中的一个做为eth0接口连接到容器上, demo
  4. OpenStack nova-docker driver有这种模式 我是手动配置的,为了保证IP不冲突,我将docker0设置为不一样的 demo
  5. Nova Docker driver这种方式有些缺点,例如,标准的API 扩展使用虚拟机特有的功能,但这些功能对于Docker并不适用,而且把Docker当作虚拟机来使用,Nova很难利用Docker有用的功能, 例如连接容器(主要指Docker容器间通信),基于以上的原因,Heat是更好的选项。