SlideShare a Scribd company logo
Ramit Surana @ramitsurana /in/ramitsurana
Agenda
• About Docker
• Life Before and After Docker
• Other options than Docker
• Why Docker ?
• Docker Components
• Docker basics
• Docker Workflow
• Dockerfile
• Docker Hub
• Quay.io
• Docker Swarm
• Docker CI/CD
• Docker CI/CD workflow
• Dockerv1.1
• RunC
• ContainerD
About me
• Open source guy
• Doing cool stuff whenever
possible
• Join me:
• Github: ramitsurana
• Linkedin: /in/ramitsurana
• Mail: ramitsurana@gmail.com
Life before Docker
About Docker
• Docker is a modernized application
container environment.
• Docker enables apps to be quickly
assembled from components.
• It eliminates the friction between
development, QA and production
environments.
Life after Docker
But are containers new in the market ?
• No
• Some other options available in
the market are:
• LXC
• LXD
• OpenVZ
Containers vs VM's
Stateless and Stateful Containers
Why Docker ?
3 basic
components
of docker
Docker basics
Basic Workflow
Better depiction of Workflow
Docker Storage options
• Docker works on various storage
options:
• Aufs
• Overlay
• ZFS
• VFS
• Device Mapper
• btrfs
Docker Security
• Ideally Containers are not considered
as secured as compared to virtualized
environments.
• Some of the apps that can work for
you in this domain are:
• Apparmor
• GRSecurity
• Seccomp Profiles
Docker Image
• Images are used to create Docker
containers.
• Docker images are the build
component of Docker.
• Docker provides a simple way to build
new images or update existing images
Docker commands
• sudo usermod -aG docker $(whoami) - After docker installation
• Docker info – To display information
• Docker images – To display images
• Docker run – To run images
• Docker pull – To pull the registries from Docket Hub
• Docker ps – To show the containers
• Service docker restart – To restart docker
• Service docker stop – To stop docker
• And many more….
Docker flags
• --name – To name a container
• -d – To run the container in daemonized mode
• -f – To do forcefully
• -a – To attach
• -e – To set environment variables
• -m – Memory limit
• -p – To publish new ports
• And many more....
Dockerfile
• Script i.e. composed of various
commands and arguments listed
successively to automatically perform
actions on a base image in order to
create a new one.
• Checkout some of my work:
• https://hub.docker.com/u/ramitsurana
• https://quay.io/user/ramitsurana05
Dockerfile
• Sample of my work on Heroku-runtime:
Dockerfile vs Docker Image
Docker Hub
• Collection of variety of different
images from organizations &
users.
• Now supports Vulnerability
analysis
• Consists of 2 types of
repositories:
• Official repos
• User based repos
How to use it with docker ?
• Docker login on cli:
• Pulling images from docker hub:
How to use it with docker ?
• Checking the image's presence :
• Running the container :
Let's Check out the output:
Quay.io
• Hosted by CoreOS guys
• Supports rkt project
• Integrated with the amazing clair
vulnerability service.
• Integrates with tectonic and other
coreos projects
How to use it with docker ?
• Quay login with docker:
• Pulling images from quay.io:
How to use it with docker ?
• Checking the image's presence :
• Running the container :
How to use it with docker ?
• Check out http://localhost:4000. Bingo !!
Docker Compose
Docker Compose
• Simple way to bring up multiple
containers with .yaml file.
• Previously known as Fig.
• Bought by docker in 2014.
How to use Docker Compose ?
• Installation:
How to use Docker Compose ?
• Installation:
How to use it with Docker Compose ?
• Create a dir and .yml file inside it:
• My .yml file:
How to use it with Docker Compose ?
• The Output:
How to use it with Docker Compose ?
• Find more cool examples at
http://github.com/ramitsurana/dcompose
• Some simple commands for docker compose:
• docker-compose up – To bring up containers
• docker-compose build - Build or rebuild services
• docker-compose kill - Kill containers
• docker-compose logs - View output from containers
• docker-compose port - Print the public port for a port binding
• docker-compose ps - List containers
• docker-compose pull - Pulls service images
• docker-compose rm - Remove stopped containers
• docker-compose scale - Set number of containers for a service
Docker Swarm
Docker Swarm
• Swarm is an orchestration tool
to orchestrate your docker
containers.
• Follows"swap, plug and play"
principle.
• Allows you to create and access
to a pool of Docker Hosts.
• For more info:
http://www.slideshare.net/rami
tsurana/introducing-docker-
swarm-the-orchestration-tool-
by-docker
Docker Swarm working
Docker Swarm high level architecture
How to use Docker Swarm ?
• Pulling the image:
• Creating new cluster using,
docker run –rm swarm create
Cluster ID
How to use Docker Swarm ?
• Starting swarm agent,
• docker run -d swarm join --addr=<node_ip:2375>
token://<cluster_id>
• Setting up swarm on the other nodes:
Default Port of Docker
How to use Docker Swarm ?
• To view a list of containers on port,
docker -H tcp://<ip-addr>:<port> ps
• To run a container on swarm,
docker –H tcp://<ip-addr>:<port> run –d –name www –p <port>:<port> <image>
Docker Swarm Filters
• Tell Docker Swarm scheduler which nodes to use when creating and
running a container.
• Consists of 5 categories:
• constraint
• health
• affinity
• dependency
• port
Some Docker Monitoring Tools
cAdvisor
• Provided as open source by
google.
• Easy to use
• Integrates well with kubernetes.
• Lightweight by nature
How to use cAdvisor ?
• Pulling docker image:
• Try http://localhost:8080 on your browser
How to use cAdvisor ?
• My Results :
Shipyard
Shipyard
• Built by Evan Hazlett.
• Built on Docker Swarm
• Gives you the ability to manage
Docker resources including
containers, images, private registries
and more.
• Requires installation of :
- Rethinkdb
- Etcd
- docker-proxy
- Shipyard image
- Swarm manager, agent & controller
How to use Shipyard ?
• Using Shell script:
How to use Shipyard?
• Open up http://:<your local ip>:8080
How to use Shipyard?
• Use admin for username & shipyard for password
Developing CI/CD
• Docker version 2.0 introduces new UI.
• Jenkinsfile introduced with this new
version.
• It's a container for your pipeline which
details what specific steps are needed to
perform a job for which you want to use
Jenkins.
• For better info:
http://theremotelab.com
/blog/jenkins2.0-screencast-series/
Sample Workflow model
Better workflow model (using kubernetes)
Dockerv1.1 introduces major updates
• From Dockerv1.1 new things have come into actions.
• Some major changes are
• RunC
• Containerd
• OCI Standards
runC
• CLI tool for spawning and
running containers.
• runC does not create a daemon,
so it integrates well with
systemd.
• Currently in alpha version
ContainerD
Containerd
• Daemon with an API and a
command line client, to manage
containers on one machine.
• Uses runC to run containers.
• Has advanced features such as
seccomp and user namespace
support as well as checkpoint
and restore for cloning and live
migration of containers.
Some more services from docker
• Docker Datacenter
• Kitematic
• Docker Cloud a.k.a. Tumtum
cloud
• Docker Toolbox
• And many more....
Some interesting new operating systems for
running docker
• CoreOS
• RancherOS
• Atomic OS
• Alpine
Docker Questions ?
Docker Celebrations & conference
Thank you
May you have a
Dockerized day
ahead !

More Related Content

What's hot

Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
Jérôme Petazzoni
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
Instruqt
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Peng Xiao
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
Frank Munz
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
MANAOUIL Karim
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
Dr. Syed Hassan Amin
 
The ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of DockerThe ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of Docker
Aniekan Akpaffiong
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
Bangladesh Network Operators Group
 
Docker 101 - High level introduction to docker
Docker 101 - High level introduction to dockerDocker 101 - High level introduction to docker
Docker 101 - High level introduction to docker
Dr Ganesh Iyer
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
Phuc Nguyen
 
Building Big Architectures
Building Big ArchitecturesBuilding Big Architectures
Building Big Architectures
Ramit Surana
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
Ajeet Singh Raina
 
A new model for Docker image distribution
A new model for Docker image distributionA new model for Docker image distribution
A new model for Docker image distributionDocker, Inc.
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Alan Forbes
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
Ganesh Samarthyam
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
rajdeep
 
Docker
DockerDocker
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
DuckDuckGo
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
Docker, Inc.
 

What's hot (20)

Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Docker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCSDocker from A to Z, including Swarm and OCCS
Docker from A to Z, including Swarm and OCCS
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Introduction To Docker
Introduction To  DockerIntroduction To  Docker
Introduction To Docker
 
The ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of DockerThe ABC of Docker: The Absolute Best Compendium of Docker
The ABC of Docker: The Absolute Best Compendium of Docker
 
Introduction to container based virtualization with docker
Introduction to container based virtualization with dockerIntroduction to container based virtualization with docker
Introduction to container based virtualization with docker
 
Docker 101 - High level introduction to docker
Docker 101 - High level introduction to dockerDocker 101 - High level introduction to docker
Docker 101 - High level introduction to docker
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Building Big Architectures
Building Big ArchitecturesBuilding Big Architectures
Building Big Architectures
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
A new model for Docker image distribution
A new model for Docker image distributionA new model for Docker image distribution
A new model for Docker image distribution
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
virtualization-vs-containerization-paas
virtualization-vs-containerization-paasvirtualization-vs-containerization-paas
virtualization-vs-containerization-paas
 
Docker
DockerDocker
Docker
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
 

Viewers also liked

Building Digital Transaction Systems in the new Banking World
Building Digital Transaction Systems in the new Banking WorldBuilding Digital Transaction Systems in the new Banking World
Building Digital Transaction Systems in the new Banking World
Ramit Surana
 
Docker - Frank Maounis
Docker - Frank MaounisDocker - Frank Maounis
Docker - Frank Maounis
Frank Maounis
 
containerd and what it means for the container ecosystem
containerd and what it means for the container ecosystemcontainerd and what it means for the container ecosystem
containerd and what it means for the container ecosystem
Justin Steele
 
KubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
KubeCon EU 2016: "rktnetes": what's new with container runtimes and KubernetesKubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
KubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
KubeAcademy
 
App container rkt
App container rktApp container rkt
App container rkt
Xiaofeng Guo
 
Sysdig - Introducing a new definition of Monitoring
Sysdig - Introducing a new definition of MonitoringSysdig - Introducing a new definition of Monitoring
Sysdig - Introducing a new definition of Monitoring
Ramit Surana
 
Hands on docker
Hands on dockerHands on docker
Hands on docker
inovex GmbH
 
Exploring Openstack Swift(Object Storage) and Swiftstack
Exploring Openstack Swift(Object Storage) and Swiftstack Exploring Openstack Swift(Object Storage) and Swiftstack
Exploring Openstack Swift(Object Storage) and Swiftstack
Ramit Surana
 
Introducing Chef | An IT automation for speed and awesomeness
Introducing Chef | An IT automation for speed and awesomenessIntroducing Chef | An IT automation for speed and awesomeness
Introducing Chef | An IT automation for speed and awesomeness
Ramit Surana
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Göksel Pırnal
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to Kubernetes
Timothy St. Clair
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Eric Gustafson
 
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
Docker-Hanoi
 
EMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data PersistenceEMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data Persistence
Clinton Kitson
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016
Opsta
 
Demystifying TLS
Demystifying TLSDemystifying TLS
Demystifying TLS
Puppet
 
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
{code}
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
Ramit Surana
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
Yongbok Kim
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Peng Xiao
 

Viewers also liked (20)

Building Digital Transaction Systems in the new Banking World
Building Digital Transaction Systems in the new Banking WorldBuilding Digital Transaction Systems in the new Banking World
Building Digital Transaction Systems in the new Banking World
 
Docker - Frank Maounis
Docker - Frank MaounisDocker - Frank Maounis
Docker - Frank Maounis
 
containerd and what it means for the container ecosystem
containerd and what it means for the container ecosystemcontainerd and what it means for the container ecosystem
containerd and what it means for the container ecosystem
 
KubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
KubeCon EU 2016: "rktnetes": what's new with container runtimes and KubernetesKubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
KubeCon EU 2016: "rktnetes": what's new with container runtimes and Kubernetes
 
App container rkt
App container rktApp container rkt
App container rkt
 
Sysdig - Introducing a new definition of Monitoring
Sysdig - Introducing a new definition of MonitoringSysdig - Introducing a new definition of Monitoring
Sysdig - Introducing a new definition of Monitoring
 
Hands on docker
Hands on dockerHands on docker
Hands on docker
 
Exploring Openstack Swift(Object Storage) and Swiftstack
Exploring Openstack Swift(Object Storage) and Swiftstack Exploring Openstack Swift(Object Storage) and Swiftstack
Exploring Openstack Swift(Object Storage) and Swiftstack
 
Introducing Chef | An IT automation for speed and awesomeness
Introducing Chef | An IT automation for speed and awesomenessIntroducing Chef | An IT automation for speed and awesomeness
Introducing Chef | An IT automation for speed and awesomeness
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
ContainerDayVietnam2016: Kubernetes State-of-the-art Container Management Pla...
 
EMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data PersistenceEMCW2015 - Containers and Data Persistence
EMCW2015 - Containers and Data Persistence
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016
 
Demystifying TLS
Demystifying TLSDemystifying TLS
Demystifying TLS
 
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
EMC World 2016 - code.13 State of the Container Ecosystem with Persistent App...
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Introduce Google Kubernetes
Introduce Google KubernetesIntroduce Google Kubernetes
Introduce Google Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 

Similar to Docker for the new Era: Introducing Docker,its components and tools

Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
dotCloud
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
damovsky
 
IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and Docker
David Currie
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
Geeta Vinnakota
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker Swarm
Mario IC
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container Security
Suraj Khetani
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with Docker
Laura Frank Tacho
 
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
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
damovsky
 
Docker crash course
Docker crash courseDocker crash course
Docker crash course
nispas
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
Kumar Ashwin
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
Kumar Ashwin
 
DockerCon 2015: Docker Engine Breakout Session
DockerCon 2015: Docker Engine Breakout SessionDockerCon 2015: Docker Engine Breakout Session
DockerCon 2015: Docker Engine Breakout Session
Docker, Inc.
 
DockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout SessionDockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout Session
Arnaud Porterie
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management services
abhishek chawla
 
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.
 
Docker
DockerDocker
Docker lxc win
Docker lxc winDocker lxc win
Docker lxc win
rahulmore01
 
Intro docker and demo monitor on docker
Intro docker and demo monitor on dockerIntro docker and demo monitor on docker
Intro docker and demo monitor on docker
Watcharin Yang-Ngam
 

Similar to Docker for the new Era: Introducing Docker,its components and tools (20)

Django and Docker
Django and DockerDjango and Docker
Django and Docker
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
IBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and DockerIBM WebSphere Application Server traditional and Docker
IBM WebSphere Application Server traditional and Docker
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Docker Compose to Production with Docker Swarm
Docker Compose to Production with Docker SwarmDocker Compose to Production with Docker Swarm
Docker Compose to Production with Docker Swarm
 
Docker Container Security
Docker Container SecurityDocker Container Security
Docker Container Security
 
Rails Applications with Docker
Rails Applications with DockerRails Applications with Docker
Rails Applications with Docker
 
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...
 
Dockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec KraloveDockerize the World - presentation from Hradec Kralove
Dockerize the World - presentation from Hradec Kralove
 
Docker crash course
Docker crash courseDocker crash course
Docker crash course
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
 
Securing Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad MeetupSecuring Containers From Day One | null Ahmedabad Meetup
Securing Containers From Day One | null Ahmedabad Meetup
 
DockerCon 2015: Docker Engine Breakout Session
DockerCon 2015: Docker Engine Breakout SessionDockerCon 2015: Docker Engine Breakout Session
DockerCon 2015: Docker Engine Breakout Session
 
DockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout SessionDockerCon US 2015 - Engine Breakout Session
DockerCon US 2015 - Engine Breakout Session
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management services
 
DCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development PipelineDCEU 18: Building Your Development Pipeline
DCEU 18: Building Your Development Pipeline
 
Docker
DockerDocker
Docker
 
Docker lxc win
Docker lxc winDocker lxc win
Docker lxc win
 
Intro docker and demo monitor on docker
Intro docker and demo monitor on dockerIntro docker and demo monitor on docker
Intro docker and demo monitor on docker
 

More from Ramit Surana

Using Serverless Architectures to build and provision modern infrastructures​
Using Serverless Architectures to build and provision modern infrastructures​Using Serverless Architectures to build and provision modern infrastructures​
Using Serverless Architectures to build and provision modern infrastructures​
Ramit Surana
 
DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​
DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​
DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​
Ramit Surana
 
Introducing Vault
Introducing VaultIntroducing Vault
Introducing Vault
Ramit Surana
 
Getting Started with Consul
Getting Started with ConsulGetting Started with Consul
Getting Started with Consul
Ramit Surana
 
Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016
Ramit Surana
 
Dependency management in golang
Dependency management in golangDependency management in golang
Dependency management in golang
Ramit Surana
 
Achieving CI/CD with Kubernetes
Achieving CI/CD with KubernetesAchieving CI/CD with Kubernetes
Achieving CI/CD with Kubernetes
Ramit Surana
 
Hashicorp: Delivering the Tao of DevOps
Hashicorp: Delivering the Tao of DevOpsHashicorp: Delivering the Tao of DevOps
Hashicorp: Delivering the Tao of DevOps
Ramit Surana
 
CoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux ContainersCoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux Containers
Ramit Surana
 
Introducing Docker Swarm - the orchestration tool by Docker
Introducing Docker Swarm - the orchestration tool by DockerIntroducing Docker Swarm - the orchestration tool by Docker
Introducing Docker Swarm - the orchestration tool by Docker
Ramit Surana
 
Introducing Puppet - The faster speed of Automation
Introducing Puppet - The faster speed of AutomationIntroducing Puppet - The faster speed of Automation
Introducing Puppet - The faster speed of Automation
Ramit Surana
 
Canister
Canister Canister
Canister
Ramit Surana
 

More from Ramit Surana (12)

Using Serverless Architectures to build and provision modern infrastructures​
Using Serverless Architectures to build and provision modern infrastructures​Using Serverless Architectures to build and provision modern infrastructures​
Using Serverless Architectures to build and provision modern infrastructures​
 
DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​
DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​
DEPLOYING WORDPRESS BLOG USING DOCKER COMPOSE & ANSIBLE ON AWS​
 
Introducing Vault
Introducing VaultIntroducing Vault
Introducing Vault
 
Getting Started with Consul
Getting Started with ConsulGetting Started with Consul
Getting Started with Consul
 
Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016Building Big Architectures XP Conference 2016
Building Big Architectures XP Conference 2016
 
Dependency management in golang
Dependency management in golangDependency management in golang
Dependency management in golang
 
Achieving CI/CD with Kubernetes
Achieving CI/CD with KubernetesAchieving CI/CD with Kubernetes
Achieving CI/CD with Kubernetes
 
Hashicorp: Delivering the Tao of DevOps
Hashicorp: Delivering the Tao of DevOpsHashicorp: Delivering the Tao of DevOps
Hashicorp: Delivering the Tao of DevOps
 
CoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux ContainersCoreOS: The Inside and Outside of Linux Containers
CoreOS: The Inside and Outside of Linux Containers
 
Introducing Docker Swarm - the orchestration tool by Docker
Introducing Docker Swarm - the orchestration tool by DockerIntroducing Docker Swarm - the orchestration tool by Docker
Introducing Docker Swarm - the orchestration tool by Docker
 
Introducing Puppet - The faster speed of Automation
Introducing Puppet - The faster speed of AutomationIntroducing Puppet - The faster speed of Automation
Introducing Puppet - The faster speed of Automation
 
Canister
Canister Canister
Canister
 

Recently uploaded

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 

Recently uploaded (20)

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 

Docker for the new Era: Introducing Docker,its components and tools

  • 1. Ramit Surana @ramitsurana /in/ramitsurana
  • 2. Agenda • About Docker • Life Before and After Docker • Other options than Docker • Why Docker ? • Docker Components • Docker basics • Docker Workflow • Dockerfile • Docker Hub • Quay.io • Docker Swarm • Docker CI/CD • Docker CI/CD workflow • Dockerv1.1 • RunC • ContainerD
  • 3. About me • Open source guy • Doing cool stuff whenever possible • Join me: • Github: ramitsurana • Linkedin: /in/ramitsurana • Mail: ramitsurana@gmail.com
  • 5. About Docker • Docker is a modernized application container environment. • Docker enables apps to be quickly assembled from components. • It eliminates the friction between development, QA and production environments.
  • 7. But are containers new in the market ? • No • Some other options available in the market are: • LXC • LXD • OpenVZ
  • 15. Docker Storage options • Docker works on various storage options: • Aufs • Overlay • ZFS • VFS • Device Mapper • btrfs
  • 16. Docker Security • Ideally Containers are not considered as secured as compared to virtualized environments. • Some of the apps that can work for you in this domain are: • Apparmor • GRSecurity • Seccomp Profiles
  • 17. Docker Image • Images are used to create Docker containers. • Docker images are the build component of Docker. • Docker provides a simple way to build new images or update existing images
  • 18. Docker commands • sudo usermod -aG docker $(whoami) - After docker installation • Docker info – To display information • Docker images – To display images • Docker run – To run images • Docker pull – To pull the registries from Docket Hub • Docker ps – To show the containers • Service docker restart – To restart docker • Service docker stop – To stop docker • And many more….
  • 19. Docker flags • --name – To name a container • -d – To run the container in daemonized mode • -f – To do forcefully • -a – To attach • -e – To set environment variables • -m – Memory limit • -p – To publish new ports • And many more....
  • 20. Dockerfile • Script i.e. composed of various commands and arguments listed successively to automatically perform actions on a base image in order to create a new one. • Checkout some of my work: • https://hub.docker.com/u/ramitsurana • https://quay.io/user/ramitsurana05
  • 21. Dockerfile • Sample of my work on Heroku-runtime:
  • 23. Docker Hub • Collection of variety of different images from organizations & users. • Now supports Vulnerability analysis • Consists of 2 types of repositories: • Official repos • User based repos
  • 24. How to use it with docker ? • Docker login on cli: • Pulling images from docker hub:
  • 25. How to use it with docker ? • Checking the image's presence : • Running the container :
  • 26. Let's Check out the output:
  • 27. Quay.io • Hosted by CoreOS guys • Supports rkt project • Integrated with the amazing clair vulnerability service. • Integrates with tectonic and other coreos projects
  • 28. How to use it with docker ? • Quay login with docker: • Pulling images from quay.io:
  • 29. How to use it with docker ? • Checking the image's presence : • Running the container :
  • 30. How to use it with docker ? • Check out http://localhost:4000. Bingo !!
  • 32. Docker Compose • Simple way to bring up multiple containers with .yaml file. • Previously known as Fig. • Bought by docker in 2014.
  • 33. How to use Docker Compose ? • Installation:
  • 34. How to use Docker Compose ? • Installation:
  • 35. How to use it with Docker Compose ? • Create a dir and .yml file inside it: • My .yml file:
  • 36. How to use it with Docker Compose ? • The Output:
  • 37. How to use it with Docker Compose ? • Find more cool examples at http://github.com/ramitsurana/dcompose • Some simple commands for docker compose: • docker-compose up – To bring up containers • docker-compose build - Build or rebuild services • docker-compose kill - Kill containers • docker-compose logs - View output from containers • docker-compose port - Print the public port for a port binding • docker-compose ps - List containers • docker-compose pull - Pulls service images • docker-compose rm - Remove stopped containers • docker-compose scale - Set number of containers for a service
  • 39. Docker Swarm • Swarm is an orchestration tool to orchestrate your docker containers. • Follows"swap, plug and play" principle. • Allows you to create and access to a pool of Docker Hosts. • For more info: http://www.slideshare.net/rami tsurana/introducing-docker- swarm-the-orchestration-tool- by-docker
  • 41. Docker Swarm high level architecture
  • 42. How to use Docker Swarm ? • Pulling the image: • Creating new cluster using, docker run –rm swarm create Cluster ID
  • 43. How to use Docker Swarm ? • Starting swarm agent, • docker run -d swarm join --addr=<node_ip:2375> token://<cluster_id> • Setting up swarm on the other nodes: Default Port of Docker
  • 44. How to use Docker Swarm ? • To view a list of containers on port, docker -H tcp://<ip-addr>:<port> ps • To run a container on swarm, docker –H tcp://<ip-addr>:<port> run –d –name www –p <port>:<port> <image>
  • 45. Docker Swarm Filters • Tell Docker Swarm scheduler which nodes to use when creating and running a container. • Consists of 5 categories: • constraint • health • affinity • dependency • port
  • 47. cAdvisor • Provided as open source by google. • Easy to use • Integrates well with kubernetes. • Lightweight by nature
  • 48. How to use cAdvisor ? • Pulling docker image: • Try http://localhost:8080 on your browser
  • 49. How to use cAdvisor ? • My Results :
  • 51. Shipyard • Built by Evan Hazlett. • Built on Docker Swarm • Gives you the ability to manage Docker resources including containers, images, private registries and more. • Requires installation of : - Rethinkdb - Etcd - docker-proxy - Shipyard image - Swarm manager, agent & controller
  • 52. How to use Shipyard ? • Using Shell script:
  • 53. How to use Shipyard? • Open up http://:<your local ip>:8080
  • 54. How to use Shipyard? • Use admin for username & shipyard for password
  • 55.
  • 56. Developing CI/CD • Docker version 2.0 introduces new UI. • Jenkinsfile introduced with this new version. • It's a container for your pipeline which details what specific steps are needed to perform a job for which you want to use Jenkins. • For better info: http://theremotelab.com /blog/jenkins2.0-screencast-series/
  • 58. Better workflow model (using kubernetes)
  • 59. Dockerv1.1 introduces major updates • From Dockerv1.1 new things have come into actions. • Some major changes are • RunC • Containerd • OCI Standards
  • 60. runC • CLI tool for spawning and running containers. • runC does not create a daemon, so it integrates well with systemd. • Currently in alpha version
  • 62. Containerd • Daemon with an API and a command line client, to manage containers on one machine. • Uses runC to run containers. • Has advanced features such as seccomp and user namespace support as well as checkpoint and restore for cloning and live migration of containers.
  • 63. Some more services from docker • Docker Datacenter • Kitematic • Docker Cloud a.k.a. Tumtum cloud • Docker Toolbox • And many more....
  • 64. Some interesting new operating systems for running docker • CoreOS • RancherOS • Atomic OS • Alpine
  • 66. Docker Celebrations & conference
  • 67. Thank you May you have a Dockerized day ahead !