SlideShare a Scribd company logo
Docker
By:
NklMish
About Me
• Senior Software Developer around JVM
• Consultant + Coaching
Fast adoption rate
Fast adoption rate
DeploymentSingle machine vs Multiple vm’s on Single machine
Problems?
Common Problem
Commit’s code
It works on
my computer
Development & Deployment
Developer
Environment
Test
Environment
Production
Environment
QA
Environment
Environment Configuration
The instruction depends on the week in which you are running them
How about Vagrant + VM + Configuration
Mangement(chef, ansible, puppet, etc.)
• Step in a right direction
• Still too heavy weight and Fragile.
• Time dependent because can
return different minor versions
apt-get install xxx
• Docker is a consumer of container based technology
providing lightweight packages for apps.
• Utilises containers for application deployment
(provides illusion that app is running in separate OS),
separating infrastructure.
What is Docker
Docker a deeper look
Containers and Linux
2005 2006 20082007 2011 2013
Open VZ CGroups Google +
CGroups
LXC Unification Patch Free
Hypervisor vs Container
Shared OSBase Emulate virtual hardware
Hardware
OS
Hypervisor
Guest OS Guest OS
App1 App2
Hardware
OS
Container Container
App1 App2
Docker Components
• Daemon
• Client
• Image
• File
Docker Benefits
• Lightweight + Speed
• Portable
• Isolation
• Security
• Cloud ready
Lightweight + Speed
• No separate OS
• Run’s as a process
• Boot time.
Portable
• Run on all platform (i.e mac, linux, cloud, amazon
linux, etc.).
• Allow developers to generate and commit
container diffs
Isolation
• Each container gets :
• It’s own file system
• Full range of port i.e. 0-65535
Security
• Root under container is “nobody” outside
• Namespace are now enabled by default
Cloud Ready
• Small size, easy to scale (both vertical and
horizontal!)
• Compatible with existing cloud solutions
With Docker, Development &
Deployment
Developer
Environment
Test
Environment
Production
Environment
QA
Environment
Installation
• Requires kernel >= 3.9 , default nowadays
• Linux
• RPM sudo rpm install docker
• Debian based distribution apt-get install docker
doesn’t work instead use docker.io repo &
execute sudo apt-get install docker.io
• Mac and Windows : boot2docker
Sample DockerFile
FROM debian:jessie
MAINTAINER Allan Espinosa "allan.espinosa@outlook.com"
RUN apt-get update && 
apt-get --no-install-recommends install -q -y openjdk-7-jre-headless && 
rm -rf /var/lib/apt/lists/*
ADD http://mirrors.jenkins-ci.org/war/1.624/jenkins.war /opt/jenkins.war
RUN chmod 644 /opt/jenkins.war
ENV JENKINS_HOME /jenkins
ENTRYPOINT ["java", "-jar", "/opt/jenkins.war"]
EXPOSE 8080
CMD [""]
Docker
Command
execution
Every docker command
generates new layer.
DevOps real time time saver.
Take precaution about env
variables.
Docker commands
docker pull <#>
Docker commands
docker images <#>
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
tpires/neo4j latest 0fd121ddd75b 4 days ago 892.8 MB
Docker commands
docker run <#>
docker run -i -t -d --name neo4j --cap-add=SYS_RESOURCE -p 7474:7474 tpires/neo4j
Docker commands
docker ps <#>
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0fabcaa1e3fe tpires/neo4j "/bin/bash -c /launc 9 minutes ago Up 9 minutes 0.0.0.0:7474->7474/tcp, 1337/tcp neo4j
Docker commands
docker diff <#>
docker diff 0fabcaa1e3fe
/etc
C /etc/neo4j
C /etc/neo4j/neo4j-server.properties
A /etc/neo4j/ssl
A /etc/neo4j/ssl/snakeoil.cert
A /etc/neo4j/ssl/snakeoil.key
C /tmp
C /tmp/hsperfdata_root
A /tmp/hsperfdata_root/84
A /tmp/jetty-0fabcaa1e3fe-7474-browser-_browser-any-24337275114314781.dir
A /tmp/jetty-0fabcaa1e3fe-7474-webadmin-html-_webadmin-any-3550160901111854765.dir
C /var
C /var/lib
C /var/lib/neo4j
C /var/lib/neo4j/data
A /var/lib/neo4j/data/dbms
A /var/lib/neo4j/data/dbms/auth
A /var/lib/neo4j/data/graph.db
A /var/lib/neo4j/data/graph.db/index
A /var/lib/neo4j/data/graph.db/lock
A /var/lib/neo4j/data/graph.db/messages.log
A /var/lib/neo4j/data/graph.db/neostore
A /var/lib/neo4j/data/graph.db/neostore.counts.db.a
A /var/lib/neo4j/data/graph.db/neostore.id
A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db
A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db.id
A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db.names
A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db.names.id
A /var/lib/neo4j/data/graph.db/neostore.nodestore.db
A /var/lib/neo4j/data/graph.db/neostore.nodestore.db.id
A /var/lib/neo4j/data/graph.db/neostore.nodestore.db.labels
A /var/lib/neo4j/data/graph.db/neostore.nodestore.db.labels.id
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.arrays
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.arrays.id
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.id
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index.id
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index.keys
A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index.keys.id
Docker commands
docker logs <#>
docker logs 0fabcaa1e3fe
Starting Neo4j Server console-mode...
Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -XX:+UseCon
2015-08-11 20:04:36.742+0000 INFO [API] Setting startup timeout to: 120000ms based on 120000
2015-08-11 20:04:38.016+0000 INFO [API] Successfully started database
2015-08-11 20:04:38.079+0000 INFO [API] Starting HTTP on port :7474 with 8 threads available
2015-08-11 20:04:38.220+0000 INFO [API] Enabling HTTPS on port :7473
2015-08-11 20:04:38.220+0000 INFO [API] No SSL certificate found, generating a self-signed certificate..
20:04:38.432 [main] INFO org.eclipse.jetty.util.log - Logging initialized @2302ms
2015-08-11 20:04:38.469+0000 INFO [API] Mounting static content at [/webadmin] from [webadmin-html]
2015-08-11 20:04:38.509+0000 INFO [API] Mounting static content at [/browser] from [browser]
20:04:38.512 [main] INFO org.eclipse.jetty.server.Server - jetty-9.2.4.v20141103
20:04:38.531 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.h.MovedContextHandler@71da109{/,null,AVAILABLE}
20:04:38.575 [main] INFO o.e.j.w.StandardDescriptorProcessor - NO JSP Support for /webadmin, did not find org.apache.jasper.servlet.JspServlet
20:04:38.594 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@6602d014{/webadmin,jar:file:/usr/share/neo4j/system/lib/neo4j-server-2.2.3-static-web.jar!/web
20:04:38.900 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@4e671f1e{/db/manage,null,AVAILABLE}
20:04:39.036 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@4ad697ef{/db/data,null,AVAILABLE}
20:04:39.046 [main] INFO o.e.j.w.StandardDescriptorProcessor - NO JSP Support for /browser, did not find org.apache.jasper.servlet.JspServlet
20:04:39.047 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@60921cf7{/browser,jar:file:/usr/share/neo4j/system/lib/neo4j-browser-2.2.3.jar!/browser,AVAIL
20:04:39.110 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@7929a090{/,null,AVAILABLE}
20:04:39.120 [main] INFO o.e.jetty.server.ServerConnector - Started ServerConnector@5129d373{HTTP/1.1}{0fabcaa1e3fe:7474}
20:04:39.178 [main] INFO o.e.jetty.server.ServerConnector - Started ServerConnector@3938bdec{SSL-HTTP/1.1}{0fabcaa1e3fe:7473}
20:04:39.178 [main] INFO org.eclipse.jetty.server.Server - Started @3052ms
2015-08-11 20:04:39.179+0000 INFO [API] Server started on: http://0fabcaa1e3fe:7474/
2015-08-11 20:04:39.179+0000 INFO [API] Remote interface ready and available at [http://0fabcaa1e3fe:7474/]
Docker commands
docker stats <#>
docker stats 0fabcaa1e3fe
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O
0fabcaa1e3fe 2.87% 232.9 MB/4.142 GB 5.62% 162.6 kB/3.7 MB
Docker Registry
• docker pull jessie translates to docker
pull registry-
1.docker.io/library/jessie
• For internal registry docker pull
companyDomain:port/foo/bar
Custom Registry
• Commercial - Docker trusted registry
• Non-commercial - set up your own service
registry (Docker Trusted Registry can help you
get started)
Docker useful tools
• Multi container application - Docker Compose
• Container clustering - Docker Swarm
• Third party integration - Yes you can use Chef
and Puppet
Cons
• kernel sharing (Different flavours of same OS
rather the different OS)
• You can end up with large number of containers.
(Google launch every week 2 billion container
instances)
Solution
• Manage containers as a single system
• Kubernetes, mesos, etc. helps to achieve this
Kubernetes
• Pods
• Replication controllers
• Labels
• Services
Summary
• Developer environment should be close to production
• Works on my machine is way too common problem.
• Manual setup is too time consuming , fragile and cumbersome
• Vm are too bulky, fragile and carries lot of additional noise.
• Container technology provides alternative approach(extremely lightweight) and docker
utilises it.
• Docker, build once run anywhere.
• Easy to scale , cloud ready.
• Not possible to run various OS , can run various flavours .
• Provides rich tools for enterprise tasks.
• Tools like Kubernetes can help.
Thank you.
Questions?

More Related Content

What's hot

Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
Crevise Technologies
 
Mutating Admission Webhook creation
Mutating Admission Webhook creationMutating Admission Webhook creation
Mutating Admission Webhook creation
Victor Morales
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureEduards Sizovs
 
Operator development made easy with helm
Operator development made easy with helmOperator development made easy with helm
Operator development made easy with helm
ConSol Consulting & Solutions Software GmbH
 
API Gateway study
API Gateway studyAPI Gateway study
API Gateway study
Rafael Gonzaga
 
Flux is incubating + the road ahead
Flux is incubating + the road aheadFlux is incubating + the road ahead
Flux is incubating + the road ahead
LibbySchulze
 
Jenkins Reviewbot
Jenkins ReviewbotJenkins Reviewbot
Jenkins Reviewbot
Yardena Meymann
 
Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup
Rahul Khengare
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gateway
ChengHui Weng
 
Serverless
ServerlessServerless
Serverless
Maciej Dziergwa
 
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Jeffrey Sica
 
Microservice API Gateways with NGINX
Microservice API Gateways with NGINXMicroservice API Gateways with NGINX
Microservice API Gateways with NGINX
Geoffrey Filippi
 
Developing Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus IbsenDeveloping Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus Ibsen
Judy Breedlove
 
Services in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdfServices in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdf
Knoldus Inc.
 
Debugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsDebugging Complex Issues in Web Applications
Debugging Complex Issues in Web Applications
VMware Tanzu
 
How Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeHow Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice Landscape
Adam Arsenault
 
gRPC @ Weaveworks
gRPC @ WeaveworksgRPC @ Weaveworks
gRPC @ Weaveworks
Weaveworks
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
Kevin Kuszyk
 
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
Puppet
 
Your Developers Can Be Heroes on Kubernetes
Your Developers Can Be Heroes on KubernetesYour Developers Can Be Heroes on Kubernetes
Your Developers Can Be Heroes on Kubernetes
Ambassador Labs
 

What's hot (20)

Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Mutating Admission Webhook creation
Mutating Admission Webhook creationMutating Admission Webhook creation
Mutating Admission Webhook creation
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
Operator development made easy with helm
Operator development made easy with helmOperator development made easy with helm
Operator development made easy with helm
 
API Gateway study
API Gateway studyAPI Gateway study
API Gateway study
 
Flux is incubating + the road ahead
Flux is incubating + the road aheadFlux is incubating + the road ahead
Flux is incubating + the road ahead
 
Jenkins Reviewbot
Jenkins ReviewbotJenkins Reviewbot
Jenkins Reviewbot
 
Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup Introduction to micro-services @DevOps pune Meetup
Introduction to micro-services @DevOps pune Meetup
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gateway
 
Serverless
ServerlessServerless
Serverless
 
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow TutorialMichigan IT Symposium 2017 - CI/CD Workflow Tutorial
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
 
Microservice API Gateways with NGINX
Microservice API Gateways with NGINXMicroservice API Gateways with NGINX
Microservice API Gateways with NGINX
 
Developing Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus IbsenDeveloping Microservices with Apache Camel, by Claus Ibsen
Developing Microservices with Apache Camel, by Claus Ibsen
 
Services in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdfServices in kubernetes-KnolX .pdf
Services in kubernetes-KnolX .pdf
 
Debugging Complex Issues in Web Applications
Debugging Complex Issues in Web ApplicationsDebugging Complex Issues in Web Applications
Debugging Complex Issues in Web Applications
 
How Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice LandscapeHow Hootsuite Manages Its Growing Microservice Landscape
How Hootsuite Manages Its Growing Microservice Landscape
 
gRPC @ Weaveworks
gRPC @ WeaveworksgRPC @ Weaveworks
gRPC @ Weaveworks
 
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploydotnetsheff: Continuous delivery with Team City and Octopus Deploy
dotnetsheff: Continuous delivery with Team City and Octopus Deploy
 
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
PuppetConf 2016: Keynote: Pulling the Strings to Containerize Your Life - Sco...
 
Your Developers Can Be Heroes on Kubernetes
Your Developers Can Be Heroes on KubernetesYour Developers Can Be Heroes on Kubernetes
Your Developers Can Be Heroes on Kubernetes
 

Viewers also liked

urbania
urbaniaurbania
Adconion Direct "RTB: The Future of Cross Channel"
Adconion Direct "RTB: The Future of Cross Channel"Adconion Direct "RTB: The Future of Cross Channel"
Adconion Direct "RTB: The Future of Cross Channel"
IAB Canada
 
Manual css3 nov2014
Manual css3 nov2014Manual css3 nov2014
Manual css3 nov2014
Yadith Gomez Nolasco
 
Finanzas iv y v unidad
Finanzas   iv y v unidad Finanzas   iv y v unidad
Finanzas iv y v unidad
Perrizo Mora
 
60 2016 individuazione e le responsabilità del lavoratore
60    2016   individuazione e le responsabilità del lavoratore60    2016   individuazione e le responsabilità del lavoratore
60 2016 individuazione e le responsabilità del lavoratore
http://www.studioingvolpi.it
 
Curso de TIC PARA LA ENSEÑANZA Y APRENDIZAJE
Curso de TIC PARA LA ENSEÑANZA Y APRENDIZAJECurso de TIC PARA LA ENSEÑANZA Y APRENDIZAJE
Curso de TIC PARA LA ENSEÑANZA Y APRENDIZAJE
Janett Julca Flores
 
News Press Capcortes Rc1
News Press Capcortes Rc1News Press Capcortes Rc1
News Press Capcortes Rc1Alcantara
 
Jsf
JsfJsf
East india securities rating advisory wc
East india securities rating advisory wcEast india securities rating advisory wc
East india securities rating advisory wcChirag Majithia
 
InnerBuilders toolsHorses
InnerBuilders toolsHorsesInnerBuilders toolsHorses
InnerBuilders toolsHorses
frankdelaguilae
 
Programacion orientada objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1Scott Chavez
 
BARRIQUE_CATAL_2013_web (1)
BARRIQUE_CATAL_2013_web (1)BARRIQUE_CATAL_2013_web (1)
BARRIQUE_CATAL_2013_web (1)Francesco Fadda
 
Oil industry managed print sevices - (NIS case study) - Canon CEE
Oil industry managed print sevices - (NIS case study) - Canon CEEOil industry managed print sevices - (NIS case study) - Canon CEE
Oil industry managed print sevices - (NIS case study) - Canon CEE
Canon Business CEE
 
SmartBits - Soluciones de negocio - www.smartbits.es
SmartBits - Soluciones de negocio - www.smartbits.esSmartBits - Soluciones de negocio - www.smartbits.es
SmartBits - Soluciones de negocio - www.smartbits.es
smartbits1
 
Server virtualization vendor landscape
Server virtualization vendor landscapeServer virtualization vendor landscape
Server virtualization vendor landscape
Info-Tech Research Group
 
T5i6 coordenades
T5i6 coordenadesT5i6 coordenades
T5i6 coordenades
Albert Grau Gatell
 

Viewers also liked (20)

urbania
urbaniaurbania
urbania
 
Adconion Direct "RTB: The Future of Cross Channel"
Adconion Direct "RTB: The Future of Cross Channel"Adconion Direct "RTB: The Future of Cross Channel"
Adconion Direct "RTB: The Future of Cross Channel"
 
Premio investigación e innovación modificado
Premio investigación e innovación modificadoPremio investigación e innovación modificado
Premio investigación e innovación modificado
 
Manual css3 nov2014
Manual css3 nov2014Manual css3 nov2014
Manual css3 nov2014
 
Finanzas iv y v unidad
Finanzas   iv y v unidad Finanzas   iv y v unidad
Finanzas iv y v unidad
 
60 2016 individuazione e le responsabilità del lavoratore
60    2016   individuazione e le responsabilità del lavoratore60    2016   individuazione e le responsabilità del lavoratore
60 2016 individuazione e le responsabilità del lavoratore
 
Curso de TIC PARA LA ENSEÑANZA Y APRENDIZAJE
Curso de TIC PARA LA ENSEÑANZA Y APRENDIZAJECurso de TIC PARA LA ENSEÑANZA Y APRENDIZAJE
Curso de TIC PARA LA ENSEÑANZA Y APRENDIZAJE
 
CliniMACS newsletter 2011
CliniMACS newsletter 2011CliniMACS newsletter 2011
CliniMACS newsletter 2011
 
Lauton &amp; Foxton Funding Programs
Lauton &amp; Foxton Funding ProgramsLauton &amp; Foxton Funding Programs
Lauton &amp; Foxton Funding Programs
 
News Press Capcortes Rc1
News Press Capcortes Rc1News Press Capcortes Rc1
News Press Capcortes Rc1
 
Jsf
JsfJsf
Jsf
 
East india securities rating advisory wc
East india securities rating advisory wcEast india securities rating advisory wc
East india securities rating advisory wc
 
InnerBuilders toolsHorses
InnerBuilders toolsHorsesInnerBuilders toolsHorses
InnerBuilders toolsHorses
 
Programacion orientada objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1
 
Important for me
Important for meImportant for me
Important for me
 
BARRIQUE_CATAL_2013_web (1)
BARRIQUE_CATAL_2013_web (1)BARRIQUE_CATAL_2013_web (1)
BARRIQUE_CATAL_2013_web (1)
 
Oil industry managed print sevices - (NIS case study) - Canon CEE
Oil industry managed print sevices - (NIS case study) - Canon CEEOil industry managed print sevices - (NIS case study) - Canon CEE
Oil industry managed print sevices - (NIS case study) - Canon CEE
 
SmartBits - Soluciones de negocio - www.smartbits.es
SmartBits - Soluciones de negocio - www.smartbits.esSmartBits - Soluciones de negocio - www.smartbits.es
SmartBits - Soluciones de negocio - www.smartbits.es
 
Server virtualization vendor landscape
Server virtualization vendor landscapeServer virtualization vendor landscape
Server virtualization vendor landscape
 
T5i6 coordenades
T5i6 coordenadesT5i6 coordenades
T5i6 coordenades
 

Similar to Detailed Introduction To Docker

Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High Availability
Daniel Krook
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
Chris Tankersley
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
Giacomo Vacca
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
Docker-Hanoi
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
Vincent Mercier
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Erica Windisch
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Jeffrey Ellin
 
Docker and Microservice
Docker and MicroserviceDocker and Microservice
Docker and Microservice
Samuel Chow
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
David Currie
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
Geeta Vinnakota
 
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
Van Phuc
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
Docker, Inc.
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECS
Amazon Web Services
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM France Lab
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
Alper Unal
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
Liang Bo
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
Dongwon Kim
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
Olve Hansen
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
Docker, Inc.
 

Similar to Detailed Introduction To Docker (20)

Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High Availability
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
 
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, OrchestrationThe Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker and Microservice
Docker and MicroserviceDocker and Microservice
Docker and Microservice
 
WebSphere and Docker
WebSphere and DockerWebSphere and Docker
WebSphere and Docker
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
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
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECS
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
 
Docker fundamentals
Docker fundamentalsDocker fundamentals
Docker fundamentals
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 

More from nklmish

Demystifying Kafka
Demystifying KafkaDemystifying Kafka
Demystifying Kafka
nklmish
 
Scaling CQRS in theory, practice, and reality
Scaling CQRS in theory, practice, and realityScaling CQRS in theory, practice, and reality
Scaling CQRS in theory, practice, and reality
nklmish
 
CQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & AxonCQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & Axon
nklmish
 
(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX
(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX
(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX
nklmish
 
Kotlin boost yourproductivity
Kotlin boost yourproductivityKotlin boost yourproductivity
Kotlin boost yourproductivity
nklmish
 
Distributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your productionDistributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your production
nklmish
 
Spock
SpockSpock
Spock
nklmish
 
Microservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuffMicroservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuff
nklmish
 
Neo4J
Neo4JNeo4J
Neo4J
nklmish
 
Mongo - an intermediate introduction
Mongo - an intermediate introductionMongo - an intermediate introduction
Mongo - an intermediate introduction
nklmish
 

More from nklmish (10)

Demystifying Kafka
Demystifying KafkaDemystifying Kafka
Demystifying Kafka
 
Scaling CQRS in theory, practice, and reality
Scaling CQRS in theory, practice, and realityScaling CQRS in theory, practice, and reality
Scaling CQRS in theory, practice, and reality
 
CQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & AxonCQRS and EventSourcing with Spring & Axon
CQRS and EventSourcing with Spring & Axon
 
(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX
(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX
(SPRING)KAFKA - ONE MORE ARSENAL IN A DISTRIBUTED TOOLBOX
 
Kotlin boost yourproductivity
Kotlin boost yourproductivityKotlin boost yourproductivity
Kotlin boost yourproductivity
 
Distributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your productionDistributed tracing - get a grasp on your production
Distributed tracing - get a grasp on your production
 
Spock
SpockSpock
Spock
 
Microservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuffMicroservice no fluff, the REAL stuff
Microservice no fluff, the REAL stuff
 
Neo4J
Neo4JNeo4J
Neo4J
 
Mongo - an intermediate introduction
Mongo - an intermediate introductionMongo - an intermediate introduction
Mongo - an intermediate introduction
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 

Detailed Introduction To Docker

  • 2. About Me • Senior Software Developer around JVM • Consultant + Coaching
  • 5. DeploymentSingle machine vs Multiple vm’s on Single machine Problems?
  • 6. Common Problem Commit’s code It works on my computer
  • 8. Environment Configuration The instruction depends on the week in which you are running them
  • 9. How about Vagrant + VM + Configuration Mangement(chef, ansible, puppet, etc.) • Step in a right direction • Still too heavy weight and Fragile. • Time dependent because can return different minor versions apt-get install xxx
  • 10.
  • 11. • Docker is a consumer of container based technology providing lightweight packages for apps. • Utilises containers for application deployment (provides illusion that app is running in separate OS), separating infrastructure. What is Docker
  • 13. Containers and Linux 2005 2006 20082007 2011 2013 Open VZ CGroups Google + CGroups LXC Unification Patch Free
  • 14. Hypervisor vs Container Shared OSBase Emulate virtual hardware Hardware OS Hypervisor Guest OS Guest OS App1 App2 Hardware OS Container Container App1 App2
  • 15. Docker Components • Daemon • Client • Image • File
  • 16. Docker Benefits • Lightweight + Speed • Portable • Isolation • Security • Cloud ready
  • 17. Lightweight + Speed • No separate OS • Run’s as a process • Boot time.
  • 18. Portable • Run on all platform (i.e mac, linux, cloud, amazon linux, etc.). • Allow developers to generate and commit container diffs
  • 19. Isolation • Each container gets : • It’s own file system • Full range of port i.e. 0-65535
  • 20. Security • Root under container is “nobody” outside • Namespace are now enabled by default
  • 21. Cloud Ready • Small size, easy to scale (both vertical and horizontal!) • Compatible with existing cloud solutions
  • 22. With Docker, Development & Deployment Developer Environment Test Environment Production Environment QA Environment
  • 23. Installation • Requires kernel >= 3.9 , default nowadays • Linux • RPM sudo rpm install docker • Debian based distribution apt-get install docker doesn’t work instead use docker.io repo & execute sudo apt-get install docker.io • Mac and Windows : boot2docker
  • 24. Sample DockerFile FROM debian:jessie MAINTAINER Allan Espinosa "allan.espinosa@outlook.com" RUN apt-get update && apt-get --no-install-recommends install -q -y openjdk-7-jre-headless && rm -rf /var/lib/apt/lists/* ADD http://mirrors.jenkins-ci.org/war/1.624/jenkins.war /opt/jenkins.war RUN chmod 644 /opt/jenkins.war ENV JENKINS_HOME /jenkins ENTRYPOINT ["java", "-jar", "/opt/jenkins.war"] EXPOSE 8080 CMD [""]
  • 25. Docker Command execution Every docker command generates new layer. DevOps real time time saver. Take precaution about env variables.
  • 27. Docker commands docker images <#> REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE tpires/neo4j latest 0fd121ddd75b 4 days ago 892.8 MB
  • 28. Docker commands docker run <#> docker run -i -t -d --name neo4j --cap-add=SYS_RESOURCE -p 7474:7474 tpires/neo4j
  • 29. Docker commands docker ps <#> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0fabcaa1e3fe tpires/neo4j "/bin/bash -c /launc 9 minutes ago Up 9 minutes 0.0.0.0:7474->7474/tcp, 1337/tcp neo4j
  • 30. Docker commands docker diff <#> docker diff 0fabcaa1e3fe /etc C /etc/neo4j C /etc/neo4j/neo4j-server.properties A /etc/neo4j/ssl A /etc/neo4j/ssl/snakeoil.cert A /etc/neo4j/ssl/snakeoil.key C /tmp C /tmp/hsperfdata_root A /tmp/hsperfdata_root/84 A /tmp/jetty-0fabcaa1e3fe-7474-browser-_browser-any-24337275114314781.dir A /tmp/jetty-0fabcaa1e3fe-7474-webadmin-html-_webadmin-any-3550160901111854765.dir C /var C /var/lib C /var/lib/neo4j C /var/lib/neo4j/data A /var/lib/neo4j/data/dbms A /var/lib/neo4j/data/dbms/auth A /var/lib/neo4j/data/graph.db A /var/lib/neo4j/data/graph.db/index A /var/lib/neo4j/data/graph.db/lock A /var/lib/neo4j/data/graph.db/messages.log A /var/lib/neo4j/data/graph.db/neostore A /var/lib/neo4j/data/graph.db/neostore.counts.db.a A /var/lib/neo4j/data/graph.db/neostore.id A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db.id A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db.names A /var/lib/neo4j/data/graph.db/neostore.labeltokenstore.db.names.id A /var/lib/neo4j/data/graph.db/neostore.nodestore.db A /var/lib/neo4j/data/graph.db/neostore.nodestore.db.id A /var/lib/neo4j/data/graph.db/neostore.nodestore.db.labels A /var/lib/neo4j/data/graph.db/neostore.nodestore.db.labels.id A /var/lib/neo4j/data/graph.db/neostore.propertystore.db A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.arrays A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.arrays.id A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.id A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index.id A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index.keys A /var/lib/neo4j/data/graph.db/neostore.propertystore.db.index.keys.id
  • 31. Docker commands docker logs <#> docker logs 0fabcaa1e3fe Starting Neo4j Server console-mode... Using additional JVM arguments: -server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -XX:+UseCon 2015-08-11 20:04:36.742+0000 INFO [API] Setting startup timeout to: 120000ms based on 120000 2015-08-11 20:04:38.016+0000 INFO [API] Successfully started database 2015-08-11 20:04:38.079+0000 INFO [API] Starting HTTP on port :7474 with 8 threads available 2015-08-11 20:04:38.220+0000 INFO [API] Enabling HTTPS on port :7473 2015-08-11 20:04:38.220+0000 INFO [API] No SSL certificate found, generating a self-signed certificate.. 20:04:38.432 [main] INFO org.eclipse.jetty.util.log - Logging initialized @2302ms 2015-08-11 20:04:38.469+0000 INFO [API] Mounting static content at [/webadmin] from [webadmin-html] 2015-08-11 20:04:38.509+0000 INFO [API] Mounting static content at [/browser] from [browser] 20:04:38.512 [main] INFO org.eclipse.jetty.server.Server - jetty-9.2.4.v20141103 20:04:38.531 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.h.MovedContextHandler@71da109{/,null,AVAILABLE} 20:04:38.575 [main] INFO o.e.j.w.StandardDescriptorProcessor - NO JSP Support for /webadmin, did not find org.apache.jasper.servlet.JspServlet 20:04:38.594 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@6602d014{/webadmin,jar:file:/usr/share/neo4j/system/lib/neo4j-server-2.2.3-static-web.jar!/web 20:04:38.900 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@4e671f1e{/db/manage,null,AVAILABLE} 20:04:39.036 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@4ad697ef{/db/data,null,AVAILABLE} 20:04:39.046 [main] INFO o.e.j.w.StandardDescriptorProcessor - NO JSP Support for /browser, did not find org.apache.jasper.servlet.JspServlet 20:04:39.047 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.w.WebAppContext@60921cf7{/browser,jar:file:/usr/share/neo4j/system/lib/neo4j-browser-2.2.3.jar!/browser,AVAIL 20:04:39.110 [main] INFO o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@7929a090{/,null,AVAILABLE} 20:04:39.120 [main] INFO o.e.jetty.server.ServerConnector - Started ServerConnector@5129d373{HTTP/1.1}{0fabcaa1e3fe:7474} 20:04:39.178 [main] INFO o.e.jetty.server.ServerConnector - Started ServerConnector@3938bdec{SSL-HTTP/1.1}{0fabcaa1e3fe:7473} 20:04:39.178 [main] INFO org.eclipse.jetty.server.Server - Started @3052ms 2015-08-11 20:04:39.179+0000 INFO [API] Server started on: http://0fabcaa1e3fe:7474/ 2015-08-11 20:04:39.179+0000 INFO [API] Remote interface ready and available at [http://0fabcaa1e3fe:7474/]
  • 32. Docker commands docker stats <#> docker stats 0fabcaa1e3fe CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O 0fabcaa1e3fe 2.87% 232.9 MB/4.142 GB 5.62% 162.6 kB/3.7 MB
  • 33. Docker Registry • docker pull jessie translates to docker pull registry- 1.docker.io/library/jessie • For internal registry docker pull companyDomain:port/foo/bar
  • 34. Custom Registry • Commercial - Docker trusted registry • Non-commercial - set up your own service registry (Docker Trusted Registry can help you get started)
  • 35. Docker useful tools • Multi container application - Docker Compose • Container clustering - Docker Swarm • Third party integration - Yes you can use Chef and Puppet
  • 36. Cons • kernel sharing (Different flavours of same OS rather the different OS) • You can end up with large number of containers. (Google launch every week 2 billion container instances)
  • 37. Solution • Manage containers as a single system • Kubernetes, mesos, etc. helps to achieve this
  • 38. Kubernetes • Pods • Replication controllers • Labels • Services
  • 39. Summary • Developer environment should be close to production • Works on my machine is way too common problem. • Manual setup is too time consuming , fragile and cumbersome • Vm are too bulky, fragile and carries lot of additional noise. • Container technology provides alternative approach(extremely lightweight) and docker utilises it. • Docker, build once run anywhere. • Easy to scale , cloud ready. • Not possible to run various OS , can run various flavours . • Provides rich tools for enterprise tasks. • Tools like Kubernetes can help.

Editor's Notes

  1. We
  2. docker pull tpires/neo4j , install the image Pull an image or a repository from a Docker registry server
  3. List all the images , output depends on your system
  4. Remember container lifecycle is as long as process run If it becomes daemon container is killed There are couple of workarounds, we can write loop in bash or perform sleep or Supervision, a python tool docker run imageid supervisior -n , you can create supervision.conf file and attach it to the container
  5. Remember container lifecycle is as long as process run If it becomes daemon container is killed There are couple of workarounds, we can write loop in bash or perform sleep or Supervision, a python tool docker run imageid supervisior -n , you can create supervision.conf file and attach it to the container
  6. difference
  7. difference
  8. difference