SlideShare a Scribd company logo
Learning Containerization
By Aditya Patawari
Consultant for Docker and
Devops
aditya@adityapatawari.com
What are
containers?
● A way to package your
application and environments.
● A way to ship your application
with ease.
● A way to isolate resources in a
shared system.
They have been around for
longer than you think.
What is Docker?
Docker containers wrap a piece of
software in a complete filesystem
that contains everything needed to
run: code, runtime, system tools,
system libraries – anything that can
be installed on a server. This
guarantees that the software will
always run the same, regardless of
its environment.
Package your application into a
standardized unit for software
development.
How Docker Works?
● Docker runs on host operating system.
● The kernel is shared among all the
containers but the resources are in
appropriate namespaces and cgroups.
● Typical container consists of operating
system libraries and the application code,
much of which is shared.
● No emulation of hardware.
How is Docker different from Virtual Machines?
● Additional hypervisor layer.
● Each guest OS comes with its own Kernel
and libraries.
● Hardware is emulated.
● Much more resource intensive.
● Difficult to share a virtual machine.
Basic Components and Terminologies
● Docker Image
a. Read-only
b. May consist of bare OS libs or application
● Docker Container
a. Stateful instance of image
b. Image with a writable layer
● Docker Registry
a. Repository of Docker images
● Docker Hub
a. A public registry hosted by Docker Inc.
Docker Workflow
1. Docker client passes a command like
docker run to Docker Engine.
2. Docker Engine checks whether it needs
to pull any image from a Docker registry.
3. If required, the image is pulled.
4. If the image is present locally, the run
command is executed.
5. The container would run on Docker
Engine.
6. Docker Engine and Docker Client can be
on the same machine or they can be
separated on the network.
Installing Docker Engine
1. Install from default operating system repositories
a. Very convenient.
b. Can be an outdated version.
2. Install from Docker’s official repositories
a. Usually up-to-date.
b. Need to configure the repository.
3. Use binaries from Github
a. Download binaries from Github and put in a location on $PATH variable.
b. Makes auditing slightly difficult since it skips dpkg and rpm list commands.
Let us install Docker
docker run hello-world
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
.
.
.
Common Commands: docker ps
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
33fd08c23918 hello-world "/hello" 5 minutes ago Exited (0) 5 minutes ago
tiny_stonebraker
Common Commands: docker images
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 6 weeks ago 1.848 kB
Common Commands: docker pull
$ sudo docker pull alpine
Using default tag: latest
latest: Pulling from library/alpine
e110a4a17941: Pull complete
Digest: sha256:3dcdb92d7432d56604d4545cbd324b14e647b313626d99b889d0626de158f73a
Status: Downloaded newer image for alpine:latest
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 6 weeks ago 1.848 kB
alpine latest 4e38e38c8ce0 7 weeks ago 4.795 MB
Common Commands: docker run
$ sudo docker run -i -t alpine /bin/sh
/ #
Common Commands: docker logs
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
8cc5470146f4 alpine "/bin/sh" About a minute ago Exited (0) 4 seconds ago
pensive_lumiere
$ sudo docker logs 8cc5470146f4
/ # ls /
bin dev etc home lib linuxrc media mnt proc root run sbin srv sys
tmp usr var
/ # echo hello
hello
/ # exit
Common Commands: docker stop
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
1ff3ca902cdf alpine "sleep 100" 11 seconds ago Up 2 seconds
pensive_mestorf
$ sudo docker stop 1ff3ca902cdf
1ff3ca902cdf
Common Commands: docker rm
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
1ff3ca902cdf alpine "sleep 100" 11 seconds ago Up 2 seconds
pensive_mestorf
$ sudo docker rm 1ff3ca902cdf
1ff3ca902cdf
Common Commands: docker rmi
$ sudo docker rmi hello-world
Untagged: hello-world:latest
Untagged:
hello-world@sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9Del
eted: sha256:c54a2cc56cbb2f04003c1cd4507e118af7c0d340fe7e2720f70976c4b75237dc
Deleted: sha256:a02596fdd012f22b03af6ad7d11fa590c57507558357b079c3e8cebceb4262d7
Docker Images
● Docker images are the read-only templates
from which a container is created.
● An image consist of one or more read-only
layers.
● These layers are overlaid to form a single
coherent file system.
● Any change to an image forms a new layer
which is overlaid on the older layers.
● When an image is pulled or pushed, only the
differential layers travel over the network,
saving time and bandwidth.
Building Docker Images: Commit Method
1. Create and run a container from an existing Docker images.
2. Make required changes to the container.
3. Use docker commit to create the image out of the container.
$ sudo docker commit <container_id> <optional_tag>
Building Docker Images: Dockerfile Method
1. Choose a base image.
2. Define set of changes in a description file.
3. Use docker build to create an image.
$ sudo docker build -f <path_of_dockerfile> .
Building Docker Images: Example Dockerfile
FROM centos
MAINTAINER Aditya Patawari <aditya@adityapatawari.com>
RUN yum -y update && yum clean all
RUN yum -y install httpd
EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
Building Docker Images: Understanding Dockerfile
● Some common terminologies for Dockerfile used in previous example
a. FROM: This defines the base image for the image that would be created
b. MAINTAINER: This defines the name and contact of the person that has created the image.
c. RUN: This will run the command inside the container.
d. EXPOSE: This informs that the specified port is to be bind inside the container.
e. CMD: Command to be executed when the container starts.
● Each statement creates a new layer, which is why sometimes we club commands using “&&”.
● For a full set of supported statements, check out Dockerfile reference
https://docs.docker.com/engine/reference/builder/
Dockerfile vs Commit
Dockerfile
● Repeatable method
● Self documenting
● Easy to audit and validate
● Great for building CI pipelines
● Better and prefered method
Commit
● Easier
● Non-repeatable
● Difficult to audit
● Usually for one-off testing
● Avoid for production grade usage
Introduction to Docker Compose
● Docker Compose is a way to define specifications of a multi-container
application.
● It can consist of Dockerfiles, images, environment variables, volumes and
many other parameters which are required to run a container based
application
● The specification is written in YAML format
● A full reference can be obtained from
https://docs.docker.com/compose/compose-file/
Installing Docker Compose
● Docker Compose is distributed as a binary.
● Latest release of the same can be downloaded from Github.
# curl -L
https://github.com/docker/compose/releases/download/1.8.0/docker-compose
-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
● After downloading Docker Compose, we need to set the correct
permissions to make is executable
# chmod +x /usr/local/bin/docker-compose
Basic Compose Spec
owncloud9:
image: adimania/owncloud9-centos7
ports:
- 80:80
links:
- mysql
mysql:
image: mysql
environment:
- MYSQL_ROOT_PASSWORD=my-secret-pw
- MYSQL_DATABASE=owncloud
# docker-compose -f docker-compose.yml up

More Related Content

What's hot

Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...
Synergetics Learning and Cloud Consulting
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
Mukta Aphale
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
Vinay H G
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
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
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Udaypal Aarkoti
 
CI CD using Docker and Jenkins
CI CD  using Docker and JenkinsCI CD  using Docker and Jenkins
CI CD using Docker and Jenkins
Sukant Kumar
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
Joris De Winne
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationRodrigo Russo
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkinscherryhillco
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
Daniel Oh
 
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
VMware Tanzu
 
What is jenkins
What is jenkinsWhat is jenkins
What is jenkins
linuxdady
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with Jenkins
Brice Argenson
 
JENKINS Training
JENKINS TrainingJENKINS Training
JENKINS Training
Nithin Kumar
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
Samuel Brown
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
James Strong
 
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
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Amrita Prasad
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
CloudBees
 

What's hot (20)

Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
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...
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
CI CD using Docker and Jenkins
CI CD  using Docker and JenkinsCI CD  using Docker and Jenkins
CI CD using Docker and Jenkins
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous IntegrationQConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
QConSP 2014 - Continuous Delivery - Part 03 - Continuous Integration
 
Continuous integration / deployment with Jenkins
Continuous integration / deployment with JenkinsContinuous integration / deployment with Jenkins
Continuous integration / deployment with Jenkins
 
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications[RHFSeoul2017]6 Steps to Transform Enterprise Applications
[RHFSeoul2017]6 Steps to Transform Enterprise Applications
 
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
An Integrated Pipeline for Private and Public Clouds with Jenkins, Artifactor...
 
What is jenkins
What is jenkinsWhat is jenkins
What is jenkins
 
Introduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with JenkinsIntroduction to Continuous Integration with Jenkins
Introduction to Continuous Integration with Jenkins
 
JENKINS Training
JENKINS TrainingJENKINS Training
JENKINS Training
 
Anatomy of a Build Pipeline
Anatomy of a Build PipelineAnatomy of a Build Pipeline
Anatomy of a Build Pipeline
 
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using JenkinsLouisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
 
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
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
 

Viewers also liked

Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conference
Mano Marks
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
Mohammad Fairus Khalid
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status Report
Camptocamp
 
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
Alessandro Nadalin
 
Using docker to develop NAS applications
Using docker to develop NAS applicationsUsing docker to develop NAS applications
Using docker to develop NAS applications
Terry 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
 
Docker for the Brave
Docker for the BraveDocker for the Brave
Docker for the Brave
David Schmitz
 
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 meetup
Walid 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/CSS
Gabriel 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
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
Julien Maitrehenry
 
Alibaba Cloud Conference 2016 - Docker Enterprise
Alibaba Cloud Conference   2016 - Docker EnterpriseAlibaba Cloud Conference   2016 - Docker Enterprise
Alibaba Cloud Conference 2016 - Docker Enterprise
John Willis
 
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
Anil 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 2015
Jelastic Multi-Cloud PaaS
 
Docker and java
Docker and javaDocker and java
Docker and java
Anthony Dahanne
 
Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]
Ryan Cuprak
 
Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day training
Troy Miles
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
Ryan Cuprak
 

Viewers also liked (20)

Intro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conferenceIntro to Docker at the 2016 Evans Developer relations conference
Intro to Docker at the 2016 Evans Developer relations conference
 
moscmy2016: Extending Docker
moscmy2016: Extending Dockermoscmy2016: Extending Docker
moscmy2016: Extending Docker
 
georchestra SDI: Project Status Report
georchestra SDI: Project Status Reportgeorchestra SDI: Project Status Report
georchestra SDI: Project Status Report
 
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
 
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...
 
Docker for the Brave
Docker for the BraveDocker for the Brave
Docker for the Brave
 
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
 
Alibaba Cloud Conference 2016 - Docker Enterprise
Alibaba Cloud Conference   2016 - Docker EnterpriseAlibaba Cloud Conference   2016 - Docker Enterprise
Alibaba Cloud Conference 2016 - Docker Enterprise
 
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
 
Docker and java
Docker and javaDocker and java
Docker and java
 
Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]Top 50 java ee 7 best practices [con5669]
Top 50 java ee 7 best practices [con5669]
 
Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day training
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
 

Similar to Introduction to Docker - Learning containerization XP conference 2016

Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
IgnacioTamayo2
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
Runcy Oommen
 
Dockers & kubernetes detailed - Beginners to Geek
Dockers & kubernetes detailed - Beginners to GeekDockers & kubernetes detailed - Beginners to Geek
Dockers & kubernetes detailed - Beginners to Geek
wiTTyMinds1
 
Docker workshop
Docker workshopDocker workshop
Docker workshopEvans Ye
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
Ganesh Samarthyam
 
Docker - A Ruby Introduction
Docker - A Ruby IntroductionDocker - A Ruby Introduction
Docker - A Ruby Introduction
Tyler Johnston
 
Docker.pdf
Docker.pdfDocker.pdf
Docker.pdf
UsamaMushtaq24
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
Guido Schmutz
 
Docker
DockerDocker
Docker
Cary Gordon
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
Philip Zheng
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
Paul Chao
 
Docker
DockerDocker
Docker
DockerDocker
Talk about Docker
Talk about DockerTalk about Docker
Talk about Docker
Meng-Ze Lee
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini Anand
PRIYADARSHINI ANAND
 
Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020
CloudHero
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
Philip Zheng
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortals
Henryk Konsek
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
Michelle Liu
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
corehard_by
 

Similar to Introduction to Docker - Learning containerization XP conference 2016 (20)

Powercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptxPowercoders · Docker · Fall 2021.pptx
Powercoders · Docker · Fall 2021.pptx
 
Docker Introductory workshop
Docker Introductory workshopDocker Introductory workshop
Docker Introductory workshop
 
Dockers & kubernetes detailed - Beginners to Geek
Dockers & kubernetes detailed - Beginners to GeekDockers & kubernetes detailed - Beginners to Geek
Dockers & kubernetes detailed - Beginners to Geek
 
Docker workshop
Docker workshopDocker workshop
Docker workshop
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Docker - A Ruby Introduction
Docker - A Ruby IntroductionDocker - A Ruby Introduction
Docker - A Ruby Introduction
 
Docker.pdf
Docker.pdfDocker.pdf
Docker.pdf
 
Running the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker ContainerRunning the Oracle SOA Suite Environment in a Docker Container
Running the Oracle SOA Suite Environment in a Docker Container
 
Docker
DockerDocker
Docker
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
 
Docker
DockerDocker
Docker
 
Docker
DockerDocker
Docker
 
Talk about Docker
Talk about DockerTalk about Docker
Talk about Docker
 
Docker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini AnandDocker and containers - Presentation Slides by Priyadarshini Anand
Docker and containers - Presentation Slides by Priyadarshini Anand
 
Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020Docker Essentials Workshop— Innovation Labs July 2020
Docker Essentials Workshop— Innovation Labs July 2020
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 
Docker for mere mortals
Docker for mere mortalsDocker for mere mortals
Docker for mere mortals
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 

More from XP Conference India

Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora
XP Conference India
 
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
XP Conference India
 
Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique
XP Conference India
 
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
XP Conference India
 
Building Big Architectures by Ramit Surana
Building Big Architectures by Ramit SuranaBuilding Big Architectures by Ramit Surana
Building Big Architectures by Ramit Surana
XP Conference India
 
Journey with XP a case study in embedded domain by Pradeep Kumar NR
Journey with XP a case study in embedded domain  by Pradeep Kumar NRJourney with XP a case study in embedded domain  by Pradeep Kumar NR
Journey with XP a case study in embedded domain by Pradeep Kumar NR
XP Conference India
 
XP in the full stack
XP in the full stackXP in the full stack
XP in the full stack
XP Conference India
 
Feature Toggle XP Conference 2016 Kalpana Gulati
Feature Toggle  XP Conference 2016 Kalpana GulatiFeature Toggle  XP Conference 2016 Kalpana Gulati
Feature Toggle XP Conference 2016 Kalpana Gulati
XP Conference India
 
Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016
XP Conference India
 
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
XP Conference India
 
S.O.L.I.D xp
S.O.L.I.D xpS.O.L.I.D xp
S.O.L.I.D xp
XP Conference India
 
Xp conf-tbd
Xp conf-tbdXp conf-tbd
Xp conf-tbd
XP Conference India
 
Developer 2.0
Developer 2.0  Developer 2.0
Developer 2.0
XP Conference India
 
Play2 Java
Play2 JavaPlay2 Java
Utility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDDUtility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDD
XP Conference India
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
XP Conference India
 
Who will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyaniWho will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyani
XP Conference India
 
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform  Suryakiran Kasturi & Akhil KumarAdopting agile in an embedded platform  Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
XP Conference India
 
Nightmare to nightly builds Vijay Bandaru
Nightmare to nightly builds   Vijay BandaruNightmare to nightly builds   Vijay Bandaru
Nightmare to nightly builds Vijay Bandaru
XP Conference India
 

More from XP Conference India (19)

Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora Power of Measurement to Attain True Agility Meetu Arora
Power of Measurement to Attain True Agility Meetu Arora
 
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...Refactoring for software design smells  XP Conference 2016  Ganesh Samarthyam...
Refactoring for software design smells XP Conference 2016 Ganesh Samarthyam...
 
Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique Agile Testing Cost Reduction using Pairwise Technique
Agile Testing Cost Reduction using Pairwise Technique
 
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
Perspectives on Continuous Integration at Scale by Hrishikesh K & Vinaya Mura...
 
Building Big Architectures by Ramit Surana
Building Big Architectures by Ramit SuranaBuilding Big Architectures by Ramit Surana
Building Big Architectures by Ramit Surana
 
Journey with XP a case study in embedded domain by Pradeep Kumar NR
Journey with XP a case study in embedded domain  by Pradeep Kumar NRJourney with XP a case study in embedded domain  by Pradeep Kumar NR
Journey with XP a case study in embedded domain by Pradeep Kumar NR
 
XP in the full stack
XP in the full stackXP in the full stack
XP in the full stack
 
Feature Toggle XP Conference 2016 Kalpana Gulati
Feature Toggle  XP Conference 2016 Kalpana GulatiFeature Toggle  XP Conference 2016 Kalpana Gulati
Feature Toggle XP Conference 2016 Kalpana Gulati
 
Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016Componentize! by Lancer Kind XP Conference 2016
Componentize! by Lancer Kind XP Conference 2016
 
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
Bashing cultural monsters in continuous integration by Vivek Ganesan XP Confe...
 
S.O.L.I.D xp
S.O.L.I.D xpS.O.L.I.D xp
S.O.L.I.D xp
 
Xp conf-tbd
Xp conf-tbdXp conf-tbd
Xp conf-tbd
 
Developer 2.0
Developer 2.0  Developer 2.0
Developer 2.0
 
Play2 Java
Play2 JavaPlay2 Java
Play2 Java
 
Utility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDDUtility of Test Coverage Metrics in TDD
Utility of Test Coverage Metrics in TDD
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
 
Who will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyaniWho will test_your_tests_yahya poonawala- priti biyani
Who will test_your_tests_yahya poonawala- priti biyani
 
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform  Suryakiran Kasturi & Akhil KumarAdopting agile in an embedded platform  Suryakiran Kasturi & Akhil Kumar
Adopting agile in an embedded platform Suryakiran Kasturi & Akhil Kumar
 
Nightmare to nightly builds Vijay Bandaru
Nightmare to nightly builds   Vijay BandaruNightmare to nightly builds   Vijay Bandaru
Nightmare to nightly builds Vijay Bandaru
 

Recently uploaded

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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
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
 
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
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
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
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
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
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
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
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

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
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
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 -...
 
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
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
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
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
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
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
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...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Introduction to Docker - Learning containerization XP conference 2016

  • 1. Learning Containerization By Aditya Patawari Consultant for Docker and Devops aditya@adityapatawari.com
  • 2. What are containers? ● A way to package your application and environments. ● A way to ship your application with ease. ● A way to isolate resources in a shared system. They have been around for longer than you think.
  • 3. What is Docker? Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment. Package your application into a standardized unit for software development.
  • 4. How Docker Works? ● Docker runs on host operating system. ● The kernel is shared among all the containers but the resources are in appropriate namespaces and cgroups. ● Typical container consists of operating system libraries and the application code, much of which is shared. ● No emulation of hardware.
  • 5. How is Docker different from Virtual Machines? ● Additional hypervisor layer. ● Each guest OS comes with its own Kernel and libraries. ● Hardware is emulated. ● Much more resource intensive. ● Difficult to share a virtual machine.
  • 6. Basic Components and Terminologies ● Docker Image a. Read-only b. May consist of bare OS libs or application ● Docker Container a. Stateful instance of image b. Image with a writable layer ● Docker Registry a. Repository of Docker images ● Docker Hub a. A public registry hosted by Docker Inc.
  • 7. Docker Workflow 1. Docker client passes a command like docker run to Docker Engine. 2. Docker Engine checks whether it needs to pull any image from a Docker registry. 3. If required, the image is pulled. 4. If the image is present locally, the run command is executed. 5. The container would run on Docker Engine. 6. Docker Engine and Docker Client can be on the same machine or they can be separated on the network.
  • 8. Installing Docker Engine 1. Install from default operating system repositories a. Very convenient. b. Can be an outdated version. 2. Install from Docker’s official repositories a. Usually up-to-date. b. Need to configure the repository. 3. Use binaries from Github a. Download binaries from Github and put in a location on $PATH variable. b. Makes auditing slightly difficult since it skips dpkg and rpm list commands. Let us install Docker
  • 9. docker run hello-world $ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world . . .
  • 10. Common Commands: docker ps $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 33fd08c23918 hello-world "/hello" 5 minutes ago Exited (0) 5 minutes ago tiny_stonebraker
  • 11. Common Commands: docker images $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest c54a2cc56cbb 6 weeks ago 1.848 kB
  • 12. Common Commands: docker pull $ sudo docker pull alpine Using default tag: latest latest: Pulling from library/alpine e110a4a17941: Pull complete Digest: sha256:3dcdb92d7432d56604d4545cbd324b14e647b313626d99b889d0626de158f73a Status: Downloaded newer image for alpine:latest $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest c54a2cc56cbb 6 weeks ago 1.848 kB alpine latest 4e38e38c8ce0 7 weeks ago 4.795 MB
  • 13. Common Commands: docker run $ sudo docker run -i -t alpine /bin/sh / #
  • 14. Common Commands: docker logs $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8cc5470146f4 alpine "/bin/sh" About a minute ago Exited (0) 4 seconds ago pensive_lumiere $ sudo docker logs 8cc5470146f4 / # ls / bin dev etc home lib linuxrc media mnt proc root run sbin srv sys tmp usr var / # echo hello hello / # exit
  • 15. Common Commands: docker stop $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1ff3ca902cdf alpine "sleep 100" 11 seconds ago Up 2 seconds pensive_mestorf $ sudo docker stop 1ff3ca902cdf 1ff3ca902cdf
  • 16. Common Commands: docker rm $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1ff3ca902cdf alpine "sleep 100" 11 seconds ago Up 2 seconds pensive_mestorf $ sudo docker rm 1ff3ca902cdf 1ff3ca902cdf
  • 17. Common Commands: docker rmi $ sudo docker rmi hello-world Untagged: hello-world:latest Untagged: hello-world@sha256:0256e8a36e2070f7bf2d0b0763dbabdd67798512411de4cdcf9431a1feb60fd9Del eted: sha256:c54a2cc56cbb2f04003c1cd4507e118af7c0d340fe7e2720f70976c4b75237dc Deleted: sha256:a02596fdd012f22b03af6ad7d11fa590c57507558357b079c3e8cebceb4262d7
  • 18. Docker Images ● Docker images are the read-only templates from which a container is created. ● An image consist of one or more read-only layers. ● These layers are overlaid to form a single coherent file system. ● Any change to an image forms a new layer which is overlaid on the older layers. ● When an image is pulled or pushed, only the differential layers travel over the network, saving time and bandwidth.
  • 19. Building Docker Images: Commit Method 1. Create and run a container from an existing Docker images. 2. Make required changes to the container. 3. Use docker commit to create the image out of the container. $ sudo docker commit <container_id> <optional_tag>
  • 20. Building Docker Images: Dockerfile Method 1. Choose a base image. 2. Define set of changes in a description file. 3. Use docker build to create an image. $ sudo docker build -f <path_of_dockerfile> .
  • 21. Building Docker Images: Example Dockerfile FROM centos MAINTAINER Aditya Patawari <aditya@adityapatawari.com> RUN yum -y update && yum clean all RUN yum -y install httpd EXPOSE 80 CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
  • 22. Building Docker Images: Understanding Dockerfile ● Some common terminologies for Dockerfile used in previous example a. FROM: This defines the base image for the image that would be created b. MAINTAINER: This defines the name and contact of the person that has created the image. c. RUN: This will run the command inside the container. d. EXPOSE: This informs that the specified port is to be bind inside the container. e. CMD: Command to be executed when the container starts. ● Each statement creates a new layer, which is why sometimes we club commands using “&&”. ● For a full set of supported statements, check out Dockerfile reference https://docs.docker.com/engine/reference/builder/
  • 23. Dockerfile vs Commit Dockerfile ● Repeatable method ● Self documenting ● Easy to audit and validate ● Great for building CI pipelines ● Better and prefered method Commit ● Easier ● Non-repeatable ● Difficult to audit ● Usually for one-off testing ● Avoid for production grade usage
  • 24. Introduction to Docker Compose ● Docker Compose is a way to define specifications of a multi-container application. ● It can consist of Dockerfiles, images, environment variables, volumes and many other parameters which are required to run a container based application ● The specification is written in YAML format ● A full reference can be obtained from https://docs.docker.com/compose/compose-file/
  • 25. Installing Docker Compose ● Docker Compose is distributed as a binary. ● Latest release of the same can be downloaded from Github. # curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose -`uname -s`-`uname -m` > /usr/local/bin/docker-compose ● After downloading Docker Compose, we need to set the correct permissions to make is executable # chmod +x /usr/local/bin/docker-compose
  • 26. Basic Compose Spec owncloud9: image: adimania/owncloud9-centos7 ports: - 80:80 links: - mysql mysql: image: mysql environment: - MYSQL_ROOT_PASSWORD=my-secret-pw - MYSQL_DATABASE=owncloud # docker-compose -f docker-compose.yml up