SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Docker &
January 2014
What?
• Docker driver for Nova accepted in Havana!
• Docker plugin for Heat accepted for Icehouse!
• Docker support in devstack!
• Now spec’ing a project to improve containers support
in OpenStack
Why Docker?!
(an incomplete list)
• Cross-Cloud compatibility
• Dockerfiles provide flexible,
repeatable image authoring
• Global image portability and
delivery through the Registry
• Incremental images & builds
• Completeness of vision
(Runtime, Configuration, Build,
Deployment, Orchestration…)
Nova Integration
Docker driver for OpenStack Compute
What?
Enables control of
Docker via OpenStack:
• Nova API
• Horizon UI
Supports:
• launch
• terminate
• reboot
• fetch logs
• snapshot
• glance
https://wiki.openstack.org/wiki/HypervisorSupportMatrix
UI Integration (Horizon)
UI Integration (Horizon)
Nova+Docker!
Architecture
Overview
Image Management
docker-registry is a proxy
!
users can upload through docker-
registry or to glance directly
!
docker pulls images through the
docker-registry proxy
Gate Tests
Unit Tests38 unit tests, gating commits
(vs 541 for libvirt and 10 specific to lxc)
passing >90% of tests in Tempest
- not perfect, but we have visibility
- most failures are !docker
non-voting gate coming in Icehouse
TESTS
Not supported.!
(yet)
Neutron (+OVS)
Cinder Volumes
(Work in progress!
but patches welcome!)
Docker Basics
Example: Run Tempest
(the OpenStack integration test suite)
Based on the project
“Dockenstack” written by Paul Czarkowski
forked and improved by Eric Windisch
Run OpenStack tempest against:
• … a freshly provisioned OpenStack install
• … installed by Devstack
• … in a Docker container
DockerfileFROM ubuntu:raring
MAINTAINER Eric Windisch “ewindisch@docker.com”
[…]
RUN apt-get -qqy install mysql-server git socat curl …
RUN useradd devstack && usermod -a -G docker devstack
ADD devstack.sudo /etc/sudoers.d/devstack
RUN chown root /etc/sudoers.d/devstack
ADD tempest /usr/local/bin/start-devstack
RUN chmod 755 /usr/local/bin/start-devstack
VOLUME /var/lib/docker
[…]
RUN git clone https://github.com/openstack-dev/devstack
RUN /devstack/tools/install_prereqs.sh
ADD localrc /devstack/localrc
CMD [“/usr/local/bin/start-devstack"]
$ docker build -t dockenstack .
$ docker run -privileged dockenstack
Build the container image:
Run it:
Publish it on the public Registry:
$ docker tag dockenstack ewindish/dockenstack

$ docker push ewindisch/dockenstack
another-host$ docker search dockenstack
NAME DESCRIPTION
ewindisch/dockenstack OpenStack development environment (using D...
!
another-host$ docker pull ewindisch/dockenstack
It’s on the public registry!
… and on github!
https://github.com/ewindisch/dockenstack
Applying Heat
Orchestration for Docker API using OpenStack Heat
Heat Plugin Flow
Heat Template
heat_template_version: 2013-05-23
!
description: Single compute instance with one docker container-
runs devstack /w docker and tests it with Tempest!
!
resources:
my_instance:
type: OS::Nova::Server
properties:
key_name: ewindisch_key1
image: ubuntu-precise-docker
flavor: m1.large
my_docker_container:
type: OS::Heat::Docker
docker_endpoint: { get_attr: [my_instance, first_address] }
image: ewindisch/dockenstack-tempest
Closer to the Docker workflow
Hybrid-cloud compatible
Scheduled by backing cloud
Integration with other services
Nova features (quota, auth, etc…)
Abstraction layer for other hypervisors
Integrated scheduling
Heat vs Nova!
Comparison
Q & A

Más contenido relacionado

La actualidad más candente

Dockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at RackspaceDockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at Rackspace
dotCloud
 

La actualidad más candente (20)

Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHDeploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
 
Automating Docker Containers with Puppet 2014 10-13
Automating Docker Containers with Puppet 2014 10-13Automating Docker Containers with Puppet 2014 10-13
Automating Docker Containers with Puppet 2014 10-13
 
Orchestrating Docker with OpenStack
Orchestrating Docker with OpenStackOrchestrating Docker with OpenStack
Orchestrating Docker with OpenStack
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Running Docker with OpenStack | Docker workshop #1
Running Docker with OpenStack | Docker workshop #1Running Docker with OpenStack | Docker workshop #1
Running Docker with OpenStack | Docker workshop #1
 
docker installation and basics
docker installation and basicsdocker installation and basics
docker installation and basics
 
Docker 101 - Intro to Docker
Docker 101 - Intro to DockerDocker 101 - Intro to Docker
Docker 101 - Intro to Docker
 
DCA. certificate slide Session 1
DCA. certificate slide Session 1DCA. certificate slide Session 1
DCA. certificate slide Session 1
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
 
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
Dockerfile Basics | Docker workshop #2 at twitter, 2013-11-05
 
Docker presentation | Paris Docker Meetup
Docker presentation | Paris Docker MeetupDocker presentation | Paris Docker Meetup
Docker presentation | Paris Docker Meetup
 
Dockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at RackspaceDockerfile basics | docker workshop #1 at Rackspace
Dockerfile basics | docker workshop #1 at Rackspace
 
Django via Docker
Django via DockerDjango via Docker
Django via Docker
 
Docker Basic Presentation
Docker Basic PresentationDocker Basic Presentation
Docker Basic Presentation
 
Containers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker ComposeContainers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
Containers #101 : Docker ONBUILD triggers and Introduction to Docker Compose
 
Dockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @TwitterDockerizing your applications - Docker workshop @Twitter
Dockerizing your applications - Docker workshop @Twitter
 
Dockerfile
Dockerfile Dockerfile
Dockerfile
 
Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014Using Docker with Puppet - PuppetConf 2014
Using Docker with Puppet - PuppetConf 2014
 

Similar a Docker and OpenStack at Rackspace

Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Erica Windisch
 
Docker-Presentation.pptx
Docker-Presentation.pptxDocker-Presentation.pptx
Docker-Presentation.pptx
Vipobav
 

Similar a Docker and OpenStack at Rackspace (20)

Docker From Scratch
Docker From ScratchDocker From Scratch
Docker From Scratch
 
Docker and the Container Ecosystem
Docker and the Container EcosystemDocker and the Container Ecosystem
Docker and the Container Ecosystem
 
Docker engine - Indroduc
Docker engine - IndroducDocker engine - Indroduc
Docker engine - Indroduc
 
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
Couchbase on Docker - Couchbase Connect 2015
Couchbase on Docker - Couchbase Connect 2015Couchbase on Docker - Couchbase Connect 2015
Couchbase on Docker - Couchbase Connect 2015
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Intro docker and demo monitor on docker
Intro docker and demo monitor on dockerIntro docker and demo monitor on docker
Intro docker and demo monitor on docker
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
How to _docker
How to _dockerHow to _docker
How to _docker
 
Docker DANS workshop
Docker DANS workshopDocker DANS workshop
Docker DANS workshop
 
Docker-Presentation.pptx
Docker-Presentation.pptxDocker-Presentation.pptx
Docker-Presentation.pptx
 
Docker
DockerDocker
Docker
 
Docker - Lightweight Virtualization
Docker - Lightweight VirtualizationDocker - Lightweight Virtualization
Docker - Lightweight Virtualization
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
 
Django and Docker
Django and DockerDjango and Docker
Django and Docker
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
 

Más de Docker, Inc.

Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 

Más de Docker, Inc. (20)

Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience Containerize Your Game Server for the Best Multiplayer Experience
Containerize Your Game Server for the Best Multiplayer Experience
 
How to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker BuildHow to Improve Your Image Builds Using Advance Docker Build
How to Improve Your Image Builds Using Advance Docker Build
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
Securing Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINXSecuring Your Containerized Applications with NGINX
Securing Your Containerized Applications with NGINX
 
How To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and ComposeHow To Build and Run Node Apps with Docker and Compose
How To Build and Run Node Apps with Docker and Compose
 
Hands-on Helm
Hands-on Helm Hands-on Helm
Hands-on Helm
 
Distributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at SalesforceDistributed Deep Learning with Docker at Salesforce
Distributed Deep Learning with Docker at Salesforce
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker HubThe First 10M Pulls: Building The Official Curl Image for Docker Hub
The First 10M Pulls: Building The Official Curl Image for Docker Hub
 
Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 

Docker and OpenStack at Rackspace

  • 2. What? • Docker driver for Nova accepted in Havana! • Docker plugin for Heat accepted for Icehouse! • Docker support in devstack! • Now spec’ing a project to improve containers support in OpenStack
  • 3. Why Docker?! (an incomplete list) • Cross-Cloud compatibility • Dockerfiles provide flexible, repeatable image authoring • Global image portability and delivery through the Registry • Incremental images & builds • Completeness of vision (Runtime, Configuration, Build, Deployment, Orchestration…)
  • 4. Nova Integration Docker driver for OpenStack Compute
  • 5. What? Enables control of Docker via OpenStack: • Nova API • Horizon UI Supports: • launch • terminate • reboot • fetch logs • snapshot • glance https://wiki.openstack.org/wiki/HypervisorSupportMatrix
  • 9. Image Management docker-registry is a proxy ! users can upload through docker- registry or to glance directly ! docker pulls images through the docker-registry proxy
  • 10. Gate Tests Unit Tests38 unit tests, gating commits (vs 541 for libvirt and 10 specific to lxc) passing >90% of tests in Tempest - not perfect, but we have visibility - most failures are !docker non-voting gate coming in Icehouse TESTS
  • 11. Not supported.! (yet) Neutron (+OVS) Cinder Volumes (Work in progress! but patches welcome!)
  • 12. Docker Basics Example: Run Tempest (the OpenStack integration test suite) Based on the project “Dockenstack” written by Paul Czarkowski forked and improved by Eric Windisch Run OpenStack tempest against: • … a freshly provisioned OpenStack install • … installed by Devstack • … in a Docker container
  • 13. DockerfileFROM ubuntu:raring MAINTAINER Eric Windisch “ewindisch@docker.com” […] RUN apt-get -qqy install mysql-server git socat curl … RUN useradd devstack && usermod -a -G docker devstack ADD devstack.sudo /etc/sudoers.d/devstack RUN chown root /etc/sudoers.d/devstack ADD tempest /usr/local/bin/start-devstack RUN chmod 755 /usr/local/bin/start-devstack VOLUME /var/lib/docker […] RUN git clone https://github.com/openstack-dev/devstack RUN /devstack/tools/install_prereqs.sh ADD localrc /devstack/localrc CMD [“/usr/local/bin/start-devstack"]
  • 14. $ docker build -t dockenstack . $ docker run -privileged dockenstack Build the container image: Run it: Publish it on the public Registry: $ docker tag dockenstack ewindish/dockenstack
 $ docker push ewindisch/dockenstack
  • 15. another-host$ docker search dockenstack NAME DESCRIPTION ewindisch/dockenstack OpenStack development environment (using D... ! another-host$ docker pull ewindisch/dockenstack It’s on the public registry! … and on github! https://github.com/ewindisch/dockenstack
  • 16.
  • 17. Applying Heat Orchestration for Docker API using OpenStack Heat
  • 19. Heat Template heat_template_version: 2013-05-23 ! description: Single compute instance with one docker container- runs devstack /w docker and tests it with Tempest! ! resources: my_instance: type: OS::Nova::Server properties: key_name: ewindisch_key1 image: ubuntu-precise-docker flavor: m1.large my_docker_container: type: OS::Heat::Docker docker_endpoint: { get_attr: [my_instance, first_address] } image: ewindisch/dockenstack-tempest
  • 20. Closer to the Docker workflow Hybrid-cloud compatible Scheduled by backing cloud Integration with other services Nova features (quota, auth, etc…) Abstraction layer for other hypervisors Integrated scheduling Heat vs Nova! Comparison
  • 21. Q & A