SlideShare a Scribd company logo
1 of 30
Introduction to Docker
https://vitalflux.com
Topics
● Containers Overview
● Docker Containers vs Virtual Machines (VMs)
● Containers - Under the hood
● Why containers?
● Containers Dev/Testing Use Cases
● Container Orchestration & Testing
● Getting started with Containers
● Docker Useful Commands
Containers
Overview
Containers Overview
● Application packaging format for packaging apps with basic minimum OS
libraries (image) related to Linux or Windows
● Two types of containers
○ Linux/Windows Containers: Runs in user mode and share host OS kernel; Linux containers run
on Linux host OS, Windows containers run on Windows host OS
○ Hyper-V Containers: On Windows, Windows/Linux containers run inside stripped down Hyper-
V VM having respective lightweight Windows/Linux kernel
● Isolate apps from each other
● Linux containers (Debian, Ubuntu, fedora, CentOS, RHEL, Alpine); Windows
containers (windowsservercore, nanoserver)
Docker Containers
vs VMs
Docker Containers vs VMs
Virtual Machines Docker Containers
Docker Containers vs VMs (Contd.)
Virtual Machines
● VMs are Guest OS
● Requires Hypervisor
● Isolate systems
● Takes lot of disk space for
GuestOS
● Starts in minutes
Docker Containers
● Linux/Windows Containers share
underlying machine’s OS system
kernel
● Hyper-V Containers run within
lightweight VM
● Requires Container Runtime
● Isolate applications
● Lot of disk space and resources are
saved.
● Starts in milliseconds
Containers - Under
the hood
Topics
● Linux Containers architecture
● Windows Containers architecture
● What are containers?
● Containers vis-a-vis Images
● Container Engine overview
Linux Containers Architecture
Windows Containers Architecture
What are Containers?
● Images are built as softwares and
custom app code packaged as reusable
read-only layers.
● Containers are image added with a
read-writable layer on top and run on
top of docker engine.
● Creating a container means creating a
read-write layer on top of the image.
● All files added/modified as part of
container is added on to this read-write
layer
● Deleting a container is removing read-
write layer.
Containers vis-a-vis Images
● Two different images with different app
versions; Would require change in the
Dockerfile
● Layers within images are reusable. Two
separate images could reuse some of the layers
● Containers created/started using different
images end up reusing one or more layers apart
from unique layers related to different images
Imagine how useful this could
be for testing purpose.
Containers vis-a-vis Images (Contd.)
● Two different images with different Java
versions; Would require change in the
Dockerfile
● Containers created/started using different
images end up reusing one or more layers apart
from unique layers related to different images
Imagine how useful this could
be for testing purpose.
Containers Engine Overview
● Enables containerized
applications to run anywhere
consistently on any infrastructure
● Available for Windows and
Linux (Ubuntu, CentOS, Oracle
Linux, RHEL, SUSE, Debian,
Fedora)
● Container runtime - Containerd
(Open source container runtime
project)
Containers Images need Container Engine (Docker Engine) to run as
Containers
Why Containers?
Why Containers?
● Build Portable Apps: Helps in building portable apps owing to container
runtime engine; High portability helps app run anywhere; This is like a Java
program which could run in any environment given Java runtime.
● Build Cloud-native Apps: Helps package app such as app could easily be
moved from one cloud platform to other without much of an issue.
● Enables DevOps: Helps achieve DevOps goals by having Ops team
containerize the apps, and later run continuous testing, and continuous
delivery to different environments; Shorten the lead time to production
Why Containers? (Contd.)
● Enhanced Speed in setting up Dev & test Environments
● Enhanced Efficiency owing to less OS overhead and effective resource usage
● Enhance Developers/Test Engineers Productivity: Developers and Test
Engineers could quickly test their changes in production like environment
without having to wait for their workload to move through different
environments.
● Enable Quick Client Demonstration: Allows to commission/decommission
app of specific version and give demo to client stakeholders.
Containers Dev /
Testing Use Cases
Containers Dev/Testing Use Cases
● Helps achieve parity between Dev, Test and Production environments
● Commission / Decommission Dev/test environments on-demand and run
automated tests:
○ Dev/Test apps of different versions
○ Dev/Test app with different versions of softwares
● When integrated with build automation tools such as Jenkins, most up-to-
date test environments (similar to prod) could be created afresh on remote
servers and run automated tests
Containers Dev/Testing Use Cases (Contd.)
Containers
Orchestration &
Testing
Containers Orchestration & Testing
● Examples include Docker Swarm,
Kubernetes
● Recreate test container instances on
different test nodes using new images
built as part of build jobs
● Helps in setting up automated Canary,
A/B testing using rolling updates
strategy.
● Distributed load testing using container
orchestration tool
○ Rapid scaling of test clients for
creating load testing traffic; Elastic
cloud infrastructure becomes key
Getting Started with
Containers
Getting Started with Containers
Docker Useful
Commands
Docker Useful Commands
● Commands
○ docker pull; docker push (Pull or push an image from/to image registry such as DockerHub)
○ docker build (Building docker images)
○ docker run (Run a command in a new container)
○ docker start; docker stop (Start and stop the containers)
○ docker ps; docker ps -a (displays containers)
○ docker images (displays images)
○ docker rm (Removes a container)
○ docker rmi; docker rmi -f (Removes an image)
○ docker search (Search the image in the registry)
● URLs
○ https://docs.docker.com/engine/reference/commandline/docker/
References
● Windows server 2016 getting Linux Containers
(https://redmondmag.com/articles/2017/04/20/windows-server-2016-getting-
linux-containers.aspx)
● When to use VM or Containers (https://blog.docker.com/2016/05/vm-or-
containers/)
● Deep dive into windows server containers (https://xebia.com/blog/deep-dive-
into-windows-server-containers-and-docker-part-2-underlying-implementation-
of-windows-server-containers/)
Thanks!
https://vitalflux.com
Thanks
https://vitalflux.com

More Related Content

What's hot

Docker Global Hack Day #3
Docker Global Hack Day #3 Docker Global Hack Day #3
Docker Global Hack Day #3 Docker, Inc.
 
Docker 101 for "The Core of Microservice Architecture"
Docker 101 for "The Core of Microservice Architecture"Docker 101 for "The Core of Microservice Architecture"
Docker 101 for "The Core of Microservice Architecture"enyert
 
An Introduction To Docker
An Introduction To DockerAn Introduction To Docker
An Introduction To DockerJames fraser
 
Introduction to docker and oci
Introduction to docker and ociIntroduction to docker and oci
Introduction to docker and ociRomain Schlick
 
Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Mustafa AKIN
 
Docker cheat-sheet
Docker cheat-sheetDocker cheat-sheet
Docker cheat-sheetPeđa Delić
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30Khelender Sasan
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerJames Turnbull
 
Introduction to Docker Container
Introduction to Docker ContainerIntroduction to Docker Container
Introduction to Docker ContainerSamsul Ma'arif
 
Building CLI Applications with Golang
Building CLI Applications with GolangBuilding CLI Applications with Golang
Building CLI Applications with GolangAnshul Patel
 
Docker
DockerDocker
Dockersubbul
 

What's hot (20)

Docker Global Hack Day #3
Docker Global Hack Day #3 Docker Global Hack Day #3
Docker Global Hack Day #3
 
Docker quick start
Docker quick startDocker quick start
Docker quick start
 
Docker 101 for "The Core of Microservice Architecture"
Docker 101 for "The Core of Microservice Architecture"Docker 101 for "The Core of Microservice Architecture"
Docker 101 for "The Core of Microservice Architecture"
 
Dockerized maven
Dockerized mavenDockerized maven
Dockerized maven
 
An Introduction To Docker
An Introduction To DockerAn Introduction To Docker
An Introduction To Docker
 
Introduction to docker and oci
Introduction to docker and ociIntroduction to docker and oci
Introduction to docker and oci
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015
 
Docker for Developers
Docker for DevelopersDocker for Developers
Docker for Developers
 
JOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to ProductionJOSA TechTalk: Taking Docker to Production
JOSA TechTalk: Taking Docker to Production
 
Docker introduction - Part 1
Docker introduction - Part 1Docker introduction - Part 1
Docker introduction - Part 1
 
Docker cheat-sheet
Docker cheat-sheetDocker cheat-sheet
Docker cheat-sheet
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30Docker container a-brief_introduction_2016-01-30
Docker container a-brief_introduction_2016-01-30
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Introduction to Docker Container
Introduction to Docker ContainerIntroduction to Docker Container
Introduction to Docker Container
 
Docker Presentation
Docker PresentationDocker Presentation
Docker Presentation
 
Building CLI Applications with Golang
Building CLI Applications with GolangBuilding CLI Applications with Golang
Building CLI Applications with Golang
 
Docker
DockerDocker
Docker
 

Similar to Introduction to Docker - Getting Started with Docker

Docker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldDocker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldzekeLabs Technologies
 
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
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KuberneteszekeLabs Technologies
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerAditya Konarde
 
Windows server containers
Windows server containersWindows server containers
Windows server containersSri Kanth
 
Windows server containers
Windows server containersWindows server containers
Windows server containersSri Kanth
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGAjeet Singh Raina
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101Naukri.com
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web DevelopersBADR
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web DevelopersAmr Fawzy
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12dotCloud
 
Application Deployment on Openstack
Application Deployment on OpenstackApplication Deployment on Openstack
Application Deployment on OpenstackDocker, Inc.
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Jérôme Petazzoni
 
Journey to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftJourney to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftYusuf Hadiwinata Sutandar
 
Introduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker SwarmIntroduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker SwarmAn Nguyen
 

Similar to Introduction to Docker - Getting Started with Docker (20)

Docker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container worldDocker - A curtain raiser to the Container world
Docker - A curtain raiser to the Container world
 
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...
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Docker handons-workshop-for-charity
Docker handons-workshop-for-charityDocker handons-workshop-for-charity
Docker handons-workshop-for-charity
 
Windows server containers
Windows server containersWindows server containers
Windows server containers
 
Windows server containers
Windows server containersWindows server containers
Windows server containers
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Docker slides
Docker slidesDocker slides
Docker slides
 
[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101[@NaukriEngineering] Docker 101
[@NaukriEngineering] Docker 101
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
 
Docker Up and Running for Web Developers
Docker Up and Running for Web DevelopersDocker Up and Running for Web Developers
Docker Up and Running for Web Developers
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
 
Application Deployment on Openstack
Application Deployment on OpenstackApplication Deployment on Openstack
Application Deployment on Openstack
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
 
Journey to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftJourney to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshift
 
Introduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker SwarmIntroduction To Docker, Docker Compose, Docker Swarm
Introduction To Docker, Docker Compose, Docker Swarm
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Introduction to Docker - Getting Started with Docker

  • 2. Topics ● Containers Overview ● Docker Containers vs Virtual Machines (VMs) ● Containers - Under the hood ● Why containers? ● Containers Dev/Testing Use Cases ● Container Orchestration & Testing ● Getting started with Containers ● Docker Useful Commands
  • 4. Containers Overview ● Application packaging format for packaging apps with basic minimum OS libraries (image) related to Linux or Windows ● Two types of containers ○ Linux/Windows Containers: Runs in user mode and share host OS kernel; Linux containers run on Linux host OS, Windows containers run on Windows host OS ○ Hyper-V Containers: On Windows, Windows/Linux containers run inside stripped down Hyper- V VM having respective lightweight Windows/Linux kernel ● Isolate apps from each other ● Linux containers (Debian, Ubuntu, fedora, CentOS, RHEL, Alpine); Windows containers (windowsservercore, nanoserver)
  • 6. Docker Containers vs VMs Virtual Machines Docker Containers
  • 7. Docker Containers vs VMs (Contd.) Virtual Machines ● VMs are Guest OS ● Requires Hypervisor ● Isolate systems ● Takes lot of disk space for GuestOS ● Starts in minutes Docker Containers ● Linux/Windows Containers share underlying machine’s OS system kernel ● Hyper-V Containers run within lightweight VM ● Requires Container Runtime ● Isolate applications ● Lot of disk space and resources are saved. ● Starts in milliseconds
  • 9. Topics ● Linux Containers architecture ● Windows Containers architecture ● What are containers? ● Containers vis-a-vis Images ● Container Engine overview
  • 12. What are Containers? ● Images are built as softwares and custom app code packaged as reusable read-only layers. ● Containers are image added with a read-writable layer on top and run on top of docker engine. ● Creating a container means creating a read-write layer on top of the image. ● All files added/modified as part of container is added on to this read-write layer ● Deleting a container is removing read- write layer.
  • 13. Containers vis-a-vis Images ● Two different images with different app versions; Would require change in the Dockerfile ● Layers within images are reusable. Two separate images could reuse some of the layers ● Containers created/started using different images end up reusing one or more layers apart from unique layers related to different images Imagine how useful this could be for testing purpose.
  • 14. Containers vis-a-vis Images (Contd.) ● Two different images with different Java versions; Would require change in the Dockerfile ● Containers created/started using different images end up reusing one or more layers apart from unique layers related to different images Imagine how useful this could be for testing purpose.
  • 15. Containers Engine Overview ● Enables containerized applications to run anywhere consistently on any infrastructure ● Available for Windows and Linux (Ubuntu, CentOS, Oracle Linux, RHEL, SUSE, Debian, Fedora) ● Container runtime - Containerd (Open source container runtime project) Containers Images need Container Engine (Docker Engine) to run as Containers
  • 17. Why Containers? ● Build Portable Apps: Helps in building portable apps owing to container runtime engine; High portability helps app run anywhere; This is like a Java program which could run in any environment given Java runtime. ● Build Cloud-native Apps: Helps package app such as app could easily be moved from one cloud platform to other without much of an issue. ● Enables DevOps: Helps achieve DevOps goals by having Ops team containerize the apps, and later run continuous testing, and continuous delivery to different environments; Shorten the lead time to production
  • 18. Why Containers? (Contd.) ● Enhanced Speed in setting up Dev & test Environments ● Enhanced Efficiency owing to less OS overhead and effective resource usage ● Enhance Developers/Test Engineers Productivity: Developers and Test Engineers could quickly test their changes in production like environment without having to wait for their workload to move through different environments. ● Enable Quick Client Demonstration: Allows to commission/decommission app of specific version and give demo to client stakeholders.
  • 20. Containers Dev/Testing Use Cases ● Helps achieve parity between Dev, Test and Production environments ● Commission / Decommission Dev/test environments on-demand and run automated tests: ○ Dev/Test apps of different versions ○ Dev/Test app with different versions of softwares ● When integrated with build automation tools such as Jenkins, most up-to- date test environments (similar to prod) could be created afresh on remote servers and run automated tests
  • 21. Containers Dev/Testing Use Cases (Contd.)
  • 23. Containers Orchestration & Testing ● Examples include Docker Swarm, Kubernetes ● Recreate test container instances on different test nodes using new images built as part of build jobs ● Helps in setting up automated Canary, A/B testing using rolling updates strategy. ● Distributed load testing using container orchestration tool ○ Rapid scaling of test clients for creating load testing traffic; Elastic cloud infrastructure becomes key
  • 25. Getting Started with Containers
  • 27. Docker Useful Commands ● Commands ○ docker pull; docker push (Pull or push an image from/to image registry such as DockerHub) ○ docker build (Building docker images) ○ docker run (Run a command in a new container) ○ docker start; docker stop (Start and stop the containers) ○ docker ps; docker ps -a (displays containers) ○ docker images (displays images) ○ docker rm (Removes a container) ○ docker rmi; docker rmi -f (Removes an image) ○ docker search (Search the image in the registry) ● URLs ○ https://docs.docker.com/engine/reference/commandline/docker/
  • 28. References ● Windows server 2016 getting Linux Containers (https://redmondmag.com/articles/2017/04/20/windows-server-2016-getting- linux-containers.aspx) ● When to use VM or Containers (https://blog.docker.com/2016/05/vm-or- containers/) ● Deep dive into windows server containers (https://xebia.com/blog/deep-dive- into-windows-server-containers-and-docker-part-2-underlying-implementation- of-windows-server-containers/)