SlideShare a Scribd company logo
1 of 55
Download to read offline
DOCKER FOR THE BRAVE
INTRODUCTION FOR BUSY PEOPLE
AGENDA
AGENDA
▸ The need for containers
▸ Overview: Docker and the Docker Ecosystem
▸ Basic Docker Workflows
“Well, it worked on my machine!”
THE NEED FOR CONTAINERS
TRADITIONAL SOFTWARE DELIVERY SUFFERS FROM GAP BETWEEN DEV AND PROD
STABILITY AND ROBUSTNESSFLEXIBILITY
Development Production
THE NEED FOR CONTAINERS
TRADITIONAL SOFTWARE DELIVERY SUFFERS FROM GAP BETWEEN DEV AND PROD
Loan Application
JDK 8
WILDFLY
MYSQL
MAC OSX
Production
JDK 6
WEBLOGIC
ORACLE
AIX
FIREWALL
SECURITY
INFRASTRUCTURE
MONITORING
…
?
Magic Operations Guide Template
Unicorns do not exist!
THE NEED FOR CONTAINERS
CONTAINERIZED APPLICATIONS OFFER A WAY TO NARROW THE GAP
▸ Immutable containers reduce human errors
▸ Instead of “works on my machine” you deploy
the machine
▸ Think diapers
THE NEED FOR CONTAINERS
PACKAGE ONCE
DEPLOY ANYWHERE
CODE
RUNTIME SYSTEM TOOLS
LIBRARIES
Container
THE NEED FOR CONTAINERS
Loan Application
JDK 7
MYSQL CORE OS
WILDFLY
Container
Production
Sales Application
JDK 8
NEO4J ALPINE
JETTY
Container
JDK 7
MYSQL CORE OS
WILDFLY
Container
JDK 8
NEO4J ALPINE
JETTY
Container
THE NEED FOR CONTAINERS
VIRTUALIZATION VS. CONTAINERS
SPEED FOOTPRINT SIMPLICITY
DOCKER BOOTCAMP
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE DOCKER ECOSYSTEM CONSISTS OF FIVE ESSENTIAL PARTS
Docker
SwarmMachine
Compose Network
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
WE’LL ONLY COVER THE BASICS
Docker
Machine
Compose
Swarm
Network
LINUX VM
(BOOT2DOCKER.ISO)
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
DOCKER-MACHINE HELPS GETTING STARTED ON NON LINUX BOXES
DOCKER HOST
WILDFLY
MYSQL
REDIS
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
DOCKER TOOLBOX TO THE RESCUE
▸ Offers a one stop Docker setup for non-
Linux machines
▸ Easiest way to get started on Mac and
Windows
▸ Includes everything covered in theses slides
https://www.docker.com/docker-toolbox
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
DOCKER IN A NUTSHELL
REGISTRYDOCKER HOST
DOCKER CLIENT
CONTAINER
CONTAINER
CONTAINER
IMAGE
IMAGE
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
IMAGES AND CONTAINERS
IMAGE
ALPINE:3.1
CONTAINER: DREAMY_HUGLE
B00F46831AF3
CONTAINER: SLEEPY_GOLICK
F0A1172ADB12
CONTAINER: JOLLY_BABBAGE
D0BAE89AD214
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
CONTAINER LIFECYCLE
CREATED
STARTED
STOPPED
REMOVED
DEMO TIME
BUILDING A LOCAL TWITTER
▸ Bootstrap demo
▸ Basic container usage
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
EXPOSING SERVICES
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
CONTAINER PORTS ARE NOT VISIBLE OUTSIDE OF THE DOCKER HOST
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
CONTAINER PORTS ARE NOT VISIBLE OUTSIDE OF THE DOCKER HOST
?
DOCKER HOST
CONTAINER: DREAMY_HUGLE
B00F46831AF3
80
443
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
CONTAINER PORTS MUST BE MAPPED TO EXTERNALLY VISIBLE PORTS
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
CONTAINER PORTS MUST BE MAPPED TO EXTERNALLY VISIBLE PORTS
DOCKER HOST
CONTAINER: DREAMY_HUGLE
B00F46831AF3
80
443
8080
DEMO TIME
BUILDING A LOCAL TWITTER
▸ Bootstrap demo
▸ Basic container usage
▸ Running ngnix
▸ Exposing ports
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS VERSIONED
CONTAINER: TEST
F0A1172ADB12
CREATED
STARTED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS VERSIONED
CONTAINER: TEST
F0A1172ADB12
foo
CREATED
STARTED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS VERSIONED
CONTAINER: TEST
F0A1172ADB12
foo
STARTED
STOPPED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM SURVIVES RESTARTS
CONTAINER: TEST
F0A1172ADB12
foo
STARTED
STOPPED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM SURVIVES RESTARTS
CONTAINER: TEST
F0A1172ADB12
foo
STARTED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS VERSIONED
CONTAINER: TEST
F0A1172ADB12
foo
CREATED
STARTED
STOPPED
REMOVED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS TRANSIENT
CONTAINER: TEST
F0A1172ADB12
foo
STOPPED
REMOVED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS TRANSIENT
CONTAINER: TEST
D8C89E9BB6AB
CREATED
STARTED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS TRANSIENT
CONTAINER: TEST
D8C89E9BB6AB
CREATED
STARTED
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE CONTAINER FILESYSTEM IS SEPARATED FROM THE HOST ENVIRONMENT
HOST
CONTAINER: DREAMY_HUGLE
B00F46831AF3
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
PERSISTENT VOLUMES ARE USED TO SHARE DATA BETWEEN HOST AND CONTAINER
HOST
CONTAINER: DREAMY_HUGLE
B00F46831AF3
CONTAINER: SLEEPY_GOLICK
F0A1172ADB12
VOLUME: DATA
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
PERSISTENT VOLUMES ARE USED TO SHARE DATA BETWEEN HOST AND CONTAINER
HOST
CONTAINER: MYWEB
B00F46831AF3
VOLUME:
~/SHARED
VOLUME:
/USR/SHARE/NGINX/HTML/
foo.htmlfoo.html
DEMO TIME
BUILDING A LOCAL TWITTER
▸ Bootstrap demo
▸ Basic container usage
▸ Running ngnix
▸ Exposing ports
▸ Sharing volumes and data
▸ Monitoring
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
THE DOCKERFILE IS THE RECIPE FOR AN IMAGE
IMAGE
KOENIGHOTZE/JDK8
Dockerfile
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
READ WRITE LAYER
READ LAYER
READ LAYER
READ LAYER
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
IMAGES ARE LAYERED; EACH LAYER IS CACHED OR FETCHED INDIVIDUALLY
KOENIGHOTZE/JDK8
FROM GLIDERLABS/ALPINE:3.3
…
CMD ["BASH", "-L"]
MAINTAINER DAVID SCHMITZ
VOLUME [$SRC_VOLUME]
COMPLEX SCENARIOS
USING COMPOSE
COMPOSITION
COMPLEX SCENARIOS USING COMPOSE
MANAGING DEPENDENCIES WITH DOCKER-COMPOSE
CONTAINER: DREAMY_HUGLE
B00F46831AF3
CONTAINER: SLEEPY_GOLICK
F0A1172ADB12
CONTAINER: JOLLY_BABBAGE
D0BAE89AD214
COMPLEX SCENARIOS USING COMPOSE
USING DOCKER-COMPOSE FOR DEPENDENCIES*
BOOKING
ping mongodb
MONGODB GUEST
curl $GUEST_URI
*Note: Compose V1 Syntax
MOVIE CONTAINER
COMPLEX SCENARIOS USING COMPOSE
DOCKER SINGLE HOST NETWORKING USING LINKS
MOVIE.WAR
ACTOR CONTAINER
ACTOR.WAR
DEMO TIME
CREATING A SIMPLE COMPOSITION WITH SPRING-BOOT AND DOCKER
▸ Create simple web application
▸ Add database as container
▸ Create compositions file
▸ Add volumes
BEYOND DOCKER
WHAT IS NEXT?
▸ CoreOs and rkt
▸ Docker Swarm and Kubernetes
▸ Unikernels (!)
BEYOND DOCKER AND SUMMARY
SUMMARY
▸ Docker is production ready
▸ Docker-Compose is targeted towards developers and should not be used for
production
▸ Might have some issues with regards to networking and clustering
▸ Multi-Cloud deployments possible
▸ Community is vital and eager to help
WANT TO KNOW MORE?
TRY ONE OF THESE GREAT VAULTS OF WISDOM
▸ Docker Home Page: https://www.docker.com/
▸ Docker Cheat Sheet: https://github.com/wsargent/docker-cheat-sheet
▸ James Turnbull, Dockerbook: http//www.dockerbook.com/
THANK YOU!
<david.schmitz@senacor.com>
BACKUP
<>
THE NEED FOR CONTAINERS
Loan Application
JDK 7
MYSQL CORE OS
WILDFLY
Container
JDK 8
NEO4J ALPINE
JETTY
Container
RUBY
POSTGRES ALPINE
RAILS
Container
…
… …
…
Container

More Related Content

What's hot

SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSSF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSJustin Ryan
 
Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)bridgetkromhout
 
Buildpacks detect, compile, release
Buildpacks  detect, compile, releaseBuildpacks  detect, compile, release
Buildpacks detect, compile, releaseHristo Iliev
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Justin Ryan
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemVan Phuc
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Tracy Kennedy
 
Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsAtlassian
 
Docker, developers take power
Docker, developers take powerDocker, developers take power
Docker, developers take powerEnalean
 
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) - DevopsDaysPGHErica Windisch
 
Devoxx 2015 - Web Application Development using Grails and Docker
Devoxx 2015 - Web Application Development using Grails and DockerDevoxx 2015 - Web Application Development using Grails and Docker
Devoxx 2015 - Web Application Development using Grails and DockerTed Vinke
 
Docker: Light and Dark
Docker: Light and DarkDocker: Light and Dark
Docker: Light and DarkTori Wieldt
 
2016 Docker Palo Alto - CD with ECS and Jenkins
2016 Docker Palo Alto -  CD with ECS and Jenkins2016 Docker Palo Alto -  CD with ECS and Jenkins
2016 Docker Palo Alto - CD with ECS and JenkinsTracy Kennedy
 
Docker Security: Are Your Containers Tightly Secured to the Ship?
Docker Security: Are Your Containers Tightly Secured to the Ship?Docker Security: Are Your Containers Tightly Secured to the Ship?
Docker Security: Are Your Containers Tightly Secured to the Ship?Michael Boelen
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016Walid Shaari
 
Programowanie AWSa z CLI, boto, Ansiblem i libcloudem
Programowanie AWSa z CLI, boto, Ansiblem i libcloudemProgramowanie AWSa z CLI, boto, Ansiblem i libcloudem
Programowanie AWSa z CLI, boto, Ansiblem i libcloudemMaciej Lasyk
 
WWCode Dallas - Kubernetes: Learning from Zero to Production
WWCode Dallas - Kubernetes: Learning from Zero to ProductionWWCode Dallas - Kubernetes: Learning from Zero to Production
WWCode Dallas - Kubernetes: Learning from Zero to ProductionRosemary Wang
 
Setting Sail With Docker
Setting Sail With DockerSetting Sail With Docker
Setting Sail With DockerKatie Hempenius
 

What's hot (20)

SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSSSF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSS
 
Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)Docker in production: reality, not hype (OSCON 2015)
Docker in production: reality, not hype (OSCON 2015)
 
Buildpacks detect, compile, release
Buildpacks  detect, compile, releaseBuildpacks  detect, compile, release
Buildpacks detect, compile, release
 
Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014Netflix Nebula - Gradle Summit 2014
Netflix Nebula - Gradle Summit 2014
 
Terraform 101
Terraform 101Terraform 101
Terraform 101
 
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker EcosystemDocker-Hanoi @DKT , Presentation about Docker Ecosystem
Docker-Hanoi @DKT , Presentation about Docker Ecosystem
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)
 
Observability
ObservabilityObservability
Observability
 
Code Reviews vs. Pull Requests
Code Reviews vs. Pull RequestsCode Reviews vs. Pull Requests
Code Reviews vs. Pull Requests
 
Docker, developers take power
Docker, developers take powerDocker, developers take power
Docker, developers take power
 
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
 
Devoxx 2015 - Web Application Development using Grails and Docker
Devoxx 2015 - Web Application Development using Grails and DockerDevoxx 2015 - Web Application Development using Grails and Docker
Devoxx 2015 - Web Application Development using Grails and Docker
 
Docker: Light and Dark
Docker: Light and DarkDocker: Light and Dark
Docker: Light and Dark
 
2016 Docker Palo Alto - CD with ECS and Jenkins
2016 Docker Palo Alto -  CD with ECS and Jenkins2016 Docker Palo Alto -  CD with ECS and Jenkins
2016 Docker Palo Alto - CD with ECS and Jenkins
 
Docker Security: Are Your Containers Tightly Secured to the Ship?
Docker Security: Are Your Containers Tightly Secured to the Ship?Docker Security: Are Your Containers Tightly Secured to the Ship?
Docker Security: Are Your Containers Tightly Secured to the Ship?
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 
Programowanie AWSa z CLI, boto, Ansiblem i libcloudem
Programowanie AWSa z CLI, boto, Ansiblem i libcloudemProgramowanie AWSa z CLI, boto, Ansiblem i libcloudem
Programowanie AWSa z CLI, boto, Ansiblem i libcloudem
 
Puppeteerのお話
Puppeteerのお話Puppeteerのお話
Puppeteerのお話
 
WWCode Dallas - Kubernetes: Learning from Zero to Production
WWCode Dallas - Kubernetes: Learning from Zero to ProductionWWCode Dallas - Kubernetes: Learning from Zero to Production
WWCode Dallas - Kubernetes: Learning from Zero to Production
 
Setting Sail With Docker
Setting Sail With DockerSetting Sail With Docker
Setting Sail With Docker
 

Viewers also liked

Elixir - Easy fun for busy developers @ Devoxx 2016
Elixir - Easy fun for busy developers @ Devoxx 2016Elixir - Easy fun for busy developers @ Devoxx 2016
Elixir - Easy fun for busy developers @ Devoxx 2016David Schmitz
 
10 Tips for failing at microservices
10 Tips for failing at microservices10 Tips for failing at microservices
10 Tips for failing at microservicesDavid Schmitz
 
Bootstrap |> Elixir - Easy fun for busy developers
Bootstrap |> Elixir - Easy fun for busy developersBootstrap |> Elixir - Easy fun for busy developers
Bootstrap |> Elixir - Easy fun for busy developersDavid Schmitz
 
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinDeploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinAlessandro Nadalin
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status ReportCamptocamp
 
Resilience testing with Wiremock and Spock
Resilience testing with Wiremock and SpockResilience testing with Wiremock and Spock
Resilience testing with Wiremock and SpockDavid Schmitz
 
Introduction to Docker - Learning containerization XP conference 2016
Introduction to Docker - Learning containerization  XP conference 2016Introduction to Docker - Learning containerization  XP conference 2016
Introduction to Docker - Learning containerization XP conference 2016XP Conference India
 
Using docker to develop NAS applications
Using docker to develop NAS applicationsUsing docker to develop NAS applications
Using docker to develop NAS applicationsTerry Chen
 
Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...Daniel Nüst
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupWalid Shaari
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSGabriel Huecas
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...Baruch Sadogursky
 
Advanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and WindowsAdvanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and WindowsAnil Madhavapeddy
 
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic Multi-Cloud PaaS
 

Viewers also liked (20)

Javaslang @ Devoxx
Javaslang @ DevoxxJavaslang @ Devoxx
Javaslang @ Devoxx
 
Elixir - Easy fun for busy developers @ Devoxx 2016
Elixir - Easy fun for busy developers @ Devoxx 2016Elixir - Easy fun for busy developers @ Devoxx 2016
Elixir - Easy fun for busy developers @ Devoxx 2016
 
10 Tips for failing at microservices
10 Tips for failing at microservices10 Tips for failing at microservices
10 Tips for failing at microservices
 
Bootstrap |> Elixir - Easy fun for busy developers
Bootstrap |> Elixir - Easy fun for busy developersBootstrap |> Elixir - Easy fun for busy developers
Bootstrap |> Elixir - Easy fun for busy developers
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
 
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in BerlinDeploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
Deploying 3 times a day without a downtime @ Rocket Tech Summit in Berlin
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status Report
 
Resilience testing with Wiremock and Spock
Resilience testing with Wiremock and SpockResilience testing with Wiremock and Spock
Resilience testing with Wiremock and Spock
 
Introduction to Docker - Learning containerization XP conference 2016
Introduction to Docker - Learning containerization  XP conference 2016Introduction to Docker - Learning containerization  XP conference 2016
Introduction to Docker - Learning containerization XP conference 2016
 
Using docker to develop NAS applications
Using docker to develop NAS applicationsUsing docker to develop NAS applications
Using docker to develop NAS applications
 
Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...Containers for sensor web services, applications and research @ Sensor Web Co...
Containers for sensor web services, applications and research @ Sensor Web Co...
 
Langlebige architekturen
Langlebige architekturenLanglebige architekturen
Langlebige architekturen
 
Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and Hybrid Mobile Development with Apache Cordova and
Hybrid Mobile Development with Apache Cordova and
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetup
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...
Building a private CI/CD pipeline with Java and Docker in the Cloud as presen...
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Advanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and WindowsAdvanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and Windows
 
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015Jelastic - DevOps for Java with Docker Containers - Madrid 2015
Jelastic - DevOps for Java with Docker Containers - Madrid 2015
 

Similar to Docker for the Brave

Docker and the Container Revolution
Docker and the Container RevolutionDocker and the Container Revolution
Docker and the Container RevolutionRomain Dorgueil
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Developmentmsyukor
 
Be a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeBe a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeNicola Paolucci
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
Be a Happier Developer with Docker: Tricks of the Trade
Be a Happier Developer with Docker: Tricks of the TradeBe a Happier Developer with Docker: Tricks of the Trade
Be a Happier Developer with Docker: Tricks of the TradeDocker, Inc.
 
7 reasons to start using Docker
7 reasons to start using Docker7 reasons to start using Docker
7 reasons to start using DockerTaras Lyapun
 
Paolucci voxxed-days-berlin-2016-age-of-orchestration
Paolucci voxxed-days-berlin-2016-age-of-orchestrationPaolucci voxxed-days-berlin-2016-age-of-orchestration
Paolucci voxxed-days-berlin-2016-age-of-orchestrationGrzegorz Duda
 
Oracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdfOracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdfYossi Nixon
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Radulescu Adina-Valentina
 
Cloud read java with kubernetes
Cloud read java with kubernetesCloud read java with kubernetes
Cloud read java with kubernetesCesar Tron-Lozai
 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)DynamicInfraDays
 
Docker: The Blue Whale of Awesomness
Docker: The Blue Whale of AwesomnessDocker: The Blue Whale of Awesomness
Docker: The Blue Whale of AwesomnessSigfred Balatan Jr.
 
Containers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container ServicesContainers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container ServicesNEXTtour
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementNicola Paolucci
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsBen Hall
 

Similar to Docker for the Brave (20)

Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Docker and the Container Revolution
Docker and the Container RevolutionDocker and the Container Revolution
Docker and the Container Revolution
 
Docker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps DevelopmentDocker: A New Way to Turbocharging Your Apps Development
Docker: A New Way to Turbocharging Your Apps Development
 
Be a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the tradeBe a happier developer with Docker: Tricks of the trade
Be a happier developer with Docker: Tricks of the trade
 
Docker training
Docker trainingDocker training
Docker training
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
DOCKER-PIAIC-SLIDES
DOCKER-PIAIC-SLIDESDOCKER-PIAIC-SLIDES
DOCKER-PIAIC-SLIDES
 
Be a Happier Developer with Docker: Tricks of the Trade
Be a Happier Developer with Docker: Tricks of the TradeBe a Happier Developer with Docker: Tricks of the Trade
Be a Happier Developer with Docker: Tricks of the Trade
 
7 reasons to start using Docker
7 reasons to start using Docker7 reasons to start using Docker
7 reasons to start using Docker
 
Paolucci voxxed-days-berlin-2016-age-of-orchestration
Paolucci voxxed-days-berlin-2016-age-of-orchestrationPaolucci voxxed-days-berlin-2016-age-of-orchestration
Paolucci voxxed-days-berlin-2016-age-of-orchestration
 
Oracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdfOracle Database 18c Docker.pdf
Oracle Database 18c Docker.pdf
 
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019Docker Timisoara: Dockercon19 recap slides, 23 may 2019
Docker Timisoara: Dockercon19 recap slides, 23 may 2019
 
Docker - introduction
Docker - introductionDocker - introduction
Docker - introduction
 
Cloud read java with kubernetes
Cloud read java with kubernetesCloud read java with kubernetes
Cloud read java with kubernetes
 
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
ContainerDays Boston 2016: "Docker For the Developer" (Borja Burgos)
 
Docker: The Blue Whale of Awesomness
Docker: The Blue Whale of AwesomnessDocker: The Blue Whale of Awesomness
Docker: The Blue Whale of Awesomness
 
Containers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container ServicesContainers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container Services
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster management
 
The Docker Ecosystem
The Docker EcosystemThe Docker Ecosystem
The Docker Ecosystem
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 

More from David Schmitz

Eventsourcing you-are-doing-it-wrong-vxdparis
Eventsourcing you-are-doing-it-wrong-vxdparisEventsourcing you-are-doing-it-wrong-vxdparis
Eventsourcing you-are-doing-it-wrong-vxdparisDavid Schmitz
 
Vavr Java User Group Rheinland
Vavr Java User Group RheinlandVavr Java User Group Rheinland
Vavr Java User Group RheinlandDavid Schmitz
 
Event Sourcing - You are doing it wrong @ Devoxx
Event Sourcing - You are doing it wrong @ DevoxxEvent Sourcing - You are doing it wrong @ Devoxx
Event Sourcing - You are doing it wrong @ DevoxxDavid Schmitz
 
10 Tipps für ein absolutes Microservice-Desaster
10 Tipps für ein absolutes Microservice-Desaster10 Tipps für ein absolutes Microservice-Desaster
10 Tipps für ein absolutes Microservice-DesasterDavid Schmitz
 
10 tips for failing at microservices @ DevExperience 2018
10 tips for failing at microservices @ DevExperience 201810 tips for failing at microservices @ DevExperience 2018
10 tips for failing at microservices @ DevExperience 2018David Schmitz
 
10 Tips for failing at microservices - badly (BedCon 2017)
10 Tips for failing at microservices - badly (BedCon 2017)10 Tips for failing at microservices - badly (BedCon 2017)
10 Tips for failing at microservices - badly (BedCon 2017)David Schmitz
 
Javaslang Talk @ Javaland 2017
Javaslang Talk @ Javaland 2017Javaslang Talk @ Javaland 2017
Javaslang Talk @ Javaland 2017David Schmitz
 
Javaslang - Functional Sugar For Java
Javaslang - Functional Sugar For JavaJavaslang - Functional Sugar For Java
Javaslang - Functional Sugar For JavaDavid Schmitz
 

More from David Schmitz (9)

Going Cloud Native
Going Cloud NativeGoing Cloud Native
Going Cloud Native
 
Eventsourcing you-are-doing-it-wrong-vxdparis
Eventsourcing you-are-doing-it-wrong-vxdparisEventsourcing you-are-doing-it-wrong-vxdparis
Eventsourcing you-are-doing-it-wrong-vxdparis
 
Vavr Java User Group Rheinland
Vavr Java User Group RheinlandVavr Java User Group Rheinland
Vavr Java User Group Rheinland
 
Event Sourcing - You are doing it wrong @ Devoxx
Event Sourcing - You are doing it wrong @ DevoxxEvent Sourcing - You are doing it wrong @ Devoxx
Event Sourcing - You are doing it wrong @ Devoxx
 
10 Tipps für ein absolutes Microservice-Desaster
10 Tipps für ein absolutes Microservice-Desaster10 Tipps für ein absolutes Microservice-Desaster
10 Tipps für ein absolutes Microservice-Desaster
 
10 tips for failing at microservices @ DevExperience 2018
10 tips for failing at microservices @ DevExperience 201810 tips for failing at microservices @ DevExperience 2018
10 tips for failing at microservices @ DevExperience 2018
 
10 Tips for failing at microservices - badly (BedCon 2017)
10 Tips for failing at microservices - badly (BedCon 2017)10 Tips for failing at microservices - badly (BedCon 2017)
10 Tips for failing at microservices - badly (BedCon 2017)
 
Javaslang Talk @ Javaland 2017
Javaslang Talk @ Javaland 2017Javaslang Talk @ Javaland 2017
Javaslang Talk @ Javaland 2017
 
Javaslang - Functional Sugar For Java
Javaslang - Functional Sugar For JavaJavaslang - Functional Sugar For Java
Javaslang - Functional Sugar For Java
 

Recently uploaded

The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

Docker for the Brave

  • 1. DOCKER FOR THE BRAVE INTRODUCTION FOR BUSY PEOPLE
  • 2. AGENDA AGENDA ▸ The need for containers ▸ Overview: Docker and the Docker Ecosystem ▸ Basic Docker Workflows
  • 3. “Well, it worked on my machine!”
  • 4. THE NEED FOR CONTAINERS TRADITIONAL SOFTWARE DELIVERY SUFFERS FROM GAP BETWEEN DEV AND PROD STABILITY AND ROBUSTNESSFLEXIBILITY Development Production
  • 5. THE NEED FOR CONTAINERS TRADITIONAL SOFTWARE DELIVERY SUFFERS FROM GAP BETWEEN DEV AND PROD Loan Application JDK 8 WILDFLY MYSQL MAC OSX Production JDK 6 WEBLOGIC ORACLE AIX FIREWALL SECURITY INFRASTRUCTURE MONITORING … ?
  • 7.
  • 9. THE NEED FOR CONTAINERS CONTAINERIZED APPLICATIONS OFFER A WAY TO NARROW THE GAP ▸ Immutable containers reduce human errors ▸ Instead of “works on my machine” you deploy the machine ▸ Think diapers
  • 10. THE NEED FOR CONTAINERS PACKAGE ONCE DEPLOY ANYWHERE CODE RUNTIME SYSTEM TOOLS LIBRARIES Container
  • 11. THE NEED FOR CONTAINERS Loan Application JDK 7 MYSQL CORE OS WILDFLY Container Production Sales Application JDK 8 NEO4J ALPINE JETTY Container JDK 7 MYSQL CORE OS WILDFLY Container JDK 8 NEO4J ALPINE JETTY Container
  • 12. THE NEED FOR CONTAINERS VIRTUALIZATION VS. CONTAINERS SPEED FOOTPRINT SIMPLICITY
  • 14. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE DOCKER ECOSYSTEM CONSISTS OF FIVE ESSENTIAL PARTS Docker SwarmMachine Compose Network
  • 15. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM WE’LL ONLY COVER THE BASICS Docker Machine Compose Swarm Network
  • 16. LINUX VM (BOOT2DOCKER.ISO) OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM DOCKER-MACHINE HELPS GETTING STARTED ON NON LINUX BOXES DOCKER HOST WILDFLY MYSQL REDIS
  • 17. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM DOCKER TOOLBOX TO THE RESCUE ▸ Offers a one stop Docker setup for non- Linux machines ▸ Easiest way to get started on Mac and Windows ▸ Includes everything covered in theses slides https://www.docker.com/docker-toolbox
  • 18. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM DOCKER IN A NUTSHELL REGISTRYDOCKER HOST DOCKER CLIENT CONTAINER CONTAINER CONTAINER IMAGE IMAGE
  • 19. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM IMAGES AND CONTAINERS IMAGE ALPINE:3.1 CONTAINER: DREAMY_HUGLE B00F46831AF3 CONTAINER: SLEEPY_GOLICK F0A1172ADB12 CONTAINER: JOLLY_BABBAGE D0BAE89AD214
  • 20. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM CONTAINER LIFECYCLE CREATED STARTED STOPPED REMOVED
  • 21. DEMO TIME BUILDING A LOCAL TWITTER ▸ Bootstrap demo ▸ Basic container usage
  • 22. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM EXPOSING SERVICES
  • 23. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM CONTAINER PORTS ARE NOT VISIBLE OUTSIDE OF THE DOCKER HOST
  • 24. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM CONTAINER PORTS ARE NOT VISIBLE OUTSIDE OF THE DOCKER HOST ? DOCKER HOST CONTAINER: DREAMY_HUGLE B00F46831AF3 80 443
  • 25. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM CONTAINER PORTS MUST BE MAPPED TO EXTERNALLY VISIBLE PORTS
  • 26. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM CONTAINER PORTS MUST BE MAPPED TO EXTERNALLY VISIBLE PORTS DOCKER HOST CONTAINER: DREAMY_HUGLE B00F46831AF3 80 443 8080
  • 27. DEMO TIME BUILDING A LOCAL TWITTER ▸ Bootstrap demo ▸ Basic container usage ▸ Running ngnix ▸ Exposing ports
  • 28. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS VERSIONED CONTAINER: TEST F0A1172ADB12 CREATED STARTED
  • 29. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS VERSIONED CONTAINER: TEST F0A1172ADB12 foo CREATED STARTED
  • 30. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS VERSIONED CONTAINER: TEST F0A1172ADB12 foo STARTED STOPPED
  • 31. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM SURVIVES RESTARTS CONTAINER: TEST F0A1172ADB12 foo STARTED STOPPED
  • 32. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM SURVIVES RESTARTS CONTAINER: TEST F0A1172ADB12 foo STARTED
  • 33. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS VERSIONED CONTAINER: TEST F0A1172ADB12 foo CREATED STARTED STOPPED REMOVED
  • 34. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS TRANSIENT CONTAINER: TEST F0A1172ADB12 foo STOPPED REMOVED
  • 35. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS TRANSIENT CONTAINER: TEST D8C89E9BB6AB CREATED STARTED
  • 36. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS TRANSIENT CONTAINER: TEST D8C89E9BB6AB CREATED STARTED
  • 37. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE CONTAINER FILESYSTEM IS SEPARATED FROM THE HOST ENVIRONMENT HOST CONTAINER: DREAMY_HUGLE B00F46831AF3
  • 38. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM PERSISTENT VOLUMES ARE USED TO SHARE DATA BETWEEN HOST AND CONTAINER HOST CONTAINER: DREAMY_HUGLE B00F46831AF3 CONTAINER: SLEEPY_GOLICK F0A1172ADB12 VOLUME: DATA
  • 39. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM PERSISTENT VOLUMES ARE USED TO SHARE DATA BETWEEN HOST AND CONTAINER HOST CONTAINER: MYWEB B00F46831AF3 VOLUME: ~/SHARED VOLUME: /USR/SHARE/NGINX/HTML/ foo.htmlfoo.html
  • 40. DEMO TIME BUILDING A LOCAL TWITTER ▸ Bootstrap demo ▸ Basic container usage ▸ Running ngnix ▸ Exposing ports ▸ Sharing volumes and data ▸ Monitoring
  • 41. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM THE DOCKERFILE IS THE RECIPE FOR AN IMAGE IMAGE KOENIGHOTZE/JDK8 Dockerfile
  • 42. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM READ WRITE LAYER READ LAYER READ LAYER READ LAYER
  • 43. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM
  • 44. OVERVIEW: DOCKER AND THE DOCKER ECOSYSTEM IMAGES ARE LAYERED; EACH LAYER IS CACHED OR FETCHED INDIVIDUALLY KOENIGHOTZE/JDK8 FROM GLIDERLABS/ALPINE:3.3 … CMD ["BASH", "-L"] MAINTAINER DAVID SCHMITZ VOLUME [$SRC_VOLUME]
  • 46. COMPOSITION COMPLEX SCENARIOS USING COMPOSE MANAGING DEPENDENCIES WITH DOCKER-COMPOSE CONTAINER: DREAMY_HUGLE B00F46831AF3 CONTAINER: SLEEPY_GOLICK F0A1172ADB12 CONTAINER: JOLLY_BABBAGE D0BAE89AD214
  • 47. COMPLEX SCENARIOS USING COMPOSE USING DOCKER-COMPOSE FOR DEPENDENCIES* BOOKING ping mongodb MONGODB GUEST curl $GUEST_URI *Note: Compose V1 Syntax
  • 48. MOVIE CONTAINER COMPLEX SCENARIOS USING COMPOSE DOCKER SINGLE HOST NETWORKING USING LINKS MOVIE.WAR ACTOR CONTAINER ACTOR.WAR
  • 49. DEMO TIME CREATING A SIMPLE COMPOSITION WITH SPRING-BOOT AND DOCKER ▸ Create simple web application ▸ Add database as container ▸ Create compositions file ▸ Add volumes
  • 50. BEYOND DOCKER WHAT IS NEXT? ▸ CoreOs and rkt ▸ Docker Swarm and Kubernetes ▸ Unikernels (!)
  • 51. BEYOND DOCKER AND SUMMARY SUMMARY ▸ Docker is production ready ▸ Docker-Compose is targeted towards developers and should not be used for production ▸ Might have some issues with regards to networking and clustering ▸ Multi-Cloud deployments possible ▸ Community is vital and eager to help
  • 52. WANT TO KNOW MORE? TRY ONE OF THESE GREAT VAULTS OF WISDOM ▸ Docker Home Page: https://www.docker.com/ ▸ Docker Cheat Sheet: https://github.com/wsargent/docker-cheat-sheet ▸ James Turnbull, Dockerbook: http//www.dockerbook.com/
  • 55. THE NEED FOR CONTAINERS Loan Application JDK 7 MYSQL CORE OS WILDFLY Container JDK 8 NEO4J ALPINE JETTY Container RUBY POSTGRES ALPINE RAILS Container … … … … Container