SlideShare a Scribd company logo
1 of 19
Speaker
Introduction to Docker and
Containers
Agenda of the Day
• Introduction to Docker
• What and Why of Containers?
• Understanding Docker Lifecycle
• Building docker images using Dockerfile
• What is Docker Compose?
Docker
Leading open-source containerization
platform
Supported natively in Azure
Docker containers wrap up a piece of software
in a complete filesystem that contains
everything it needs to run: code, runtime,
system tools, system libraries – anything you
can install on a server. This guarantees that it
will always run the same, regardless of the
environment it is running in
Docker Architecture
Docker CLI
• Command-line interface for Docker, available for Linux, OS X,
and Windows (available separately or as part of Docker Toolbox)
Running a Container
docker run -i -t ubuntu /bin/bash
Containers
Lightweight alternative to virtual machines
Smaller, less expensive, faster to start up, and self-contained
Host Operating System
Hypervisor
Guest OS
Libraries
App
Guest OS
Libraries
App
Guest OS
Libraries
App
Operating System
Container Engine
Libraries
App
Libraries
App
Libraries
App
Virtual Machines
Containers
Processes in containers are isolated from other
containers in user space, but share the kernel with the host and other
containers
Differences in underlying OS and infrastructure
are abstracted away, streamlining “deploy anywhere” approach
Containers can be created almost instantly, enabling rapid scale-
up and scale-down in response to changes in demand
Containers
Containers
Semantics
Common Docker CLI Commands
docker run - Use an image to run a container
docker pull - Pull an image from a registry
docker build - Build a Docker image
docker exec - Execute a command in a container
docker stop - Stop a running container
docker images - List available Docker images
docker ps - List running Docker containers
Running Containers on Linux
Container A
App 1
Container B
App 2
Container C
App 3
Linux-Based Host Operating System
Infrastructure
Container A
• Isolation from kernel-level container support
• Containers are started from images
Container B
• Binaries depend on specific OS/kernel
Container C
• No guest OS needed
What is Docker?
Server Docker Daemon
Rest API
Client Docker CLI Manages
• Container
• Network
• Image
• Data Volumes
Container Anatomy
• Container images
• The container
• Container tooling
Container layer (Thin r/w)
Your Application
Updates/Patches/Additional tools
Frameworks and Tools
Base OS layer
Dockerfile to Create Images
What is Docker Compose?
• Used to instance multiple containers
• Can reference Dockerfiles
and/or images
• Paired with docker-compose.yml
Web Frontend
SQL Server on Linux
Web API Redis Cache
Docker-Compose Structure
Version: ‘3.0’
Services:
service-name:
image: docker-image
image: how to build
depends on:
-other services
environment:
-key/value pairs
ports:
-port mapping
network:
network-name:
volumes:
volume-name:
CI/CD for Containers
DevOps flow – CD push to cluster

More Related Content

What's hot

Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)Gourav Varma
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker, Inc.
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
 
What is Docker Architecture | Edureka
What is Docker Architecture | EdurekaWhat is Docker Architecture | Edureka
What is Docker Architecture | EdurekaEdureka!
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Docker 101 - Getting started
Docker 101 - Getting startedDocker 101 - Getting started
Docker 101 - Getting startedMatheus Marabesi
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker ComposeAjeet Singh Raina
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefitsAmit Manwade
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Simplilearn
 
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginnersJuneyoung Oh
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to AdvanceParas Jain
 
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 servicesabhishek chawla
 
Why Docker
Why DockerWhy Docker
Why DockerdotCloud
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 

What's hot (20)

Docker introduction (1)
Docker introduction (1)Docker introduction (1)
Docker introduction (1)
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...
 
What is Docker Architecture | Edureka
What is Docker Architecture | EdurekaWhat is Docker Architecture | Edureka
What is Docker Architecture | Edureka
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Docker 101 - Getting started
Docker 101 - Getting startedDocker 101 - Getting started
Docker 101 - Getting started
 
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
 
Introduction to Docker Compose
Introduction to Docker ComposeIntroduction to Docker Compose
Introduction to Docker Compose
 
Docker introduction & benefits
Docker introduction & benefitsDocker introduction & benefits
Docker introduction & benefits
 
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
Docker Compose | Docker Compose Tutorial | Docker Tutorial For Beginners | De...
 
Docker introduction for the beginners
Docker introduction for the beginnersDocker introduction for the beginners
Docker introduction for the beginners
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
What is Docker
What is DockerWhat is Docker
What is Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker Basic to Advance
Docker Basic to AdvanceDocker Basic to Advance
Docker Basic to Advance
 
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
 
Why Docker
Why DockerWhy Docker
Why Docker
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 

Similar to Docker.pptx

Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFJeffrey Sica
 
CONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptxCONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptxSanjuGamesphere
 
An introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developersAn introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developersRobert McFrazier
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the Worlddamovsky
 
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
 
Introduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersIntroduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersRobert McFrazier
 
Introduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersIntroduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersRobert McFrazier
 
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
 
Containers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to KubernetesContainers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to KubernetesShreyas MM
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
14309525_docker_docker_docker_docker_introduction.ppt
14309525_docker_docker_docker_docker_introduction.ppt14309525_docker_docker_docker_docker_introduction.ppt
14309525_docker_docker_docker_docker_introduction.pptaravym456
 
Docker : Container Virtualization
Docker : Container VirtualizationDocker : Container Virtualization
Docker : Container VirtualizationRanjan Baisak
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaAngel Borroy López
 
Docker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to DockerDocker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to Dockerjonatanblue
 

Similar to Docker.pptx (20)

Docker slides
Docker slidesDocker slides
Docker slides
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOF
 
CONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptxCONTAINERIZATION WITH DOCKER .pptx
CONTAINERIZATION WITH DOCKER .pptx
 
An introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developersAn introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developers
 
Developer workflow with docker
Developer workflow with dockerDeveloper workflow with docker
Developer workflow with docker
 
Dockerize the World
Dockerize the WorldDockerize the World
Dockerize the World
 
Docker basics
Docker basicsDocker basics
Docker basics
 
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...
 
Introduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersIntroduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developers
 
Introduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developersIntroduction to Containers and Docker for PHP developers
Introduction to Containers and Docker for PHP developers
 
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
IBM Bluemix Paris Meetup #14 - Le Village by CA - 20160413 - Introduction à D...
 
Docker
DockerDocker
Docker
 
Containers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to KubernetesContainers and Cloud: From LXC to Docker to Kubernetes
Containers and Cloud: From LXC to Docker to Kubernetes
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
14309525_docker_docker_docker_docker_introduction.ppt
14309525_docker_docker_docker_docker_introduction.ppt14309525_docker_docker_docker_docker_introduction.ppt
14309525_docker_docker_docker_docker_introduction.ppt
 
Docker : Container Virtualization
Docker : Container VirtualizationDocker : Container Virtualization
Docker : Container Virtualization
 
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de ZaragozaDocker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
Docker 101 - Zaragoza Docker Meetup - Universidad de Zaragoza
 
Docker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to DockerDocker Oxford launch - Introduction to Docker
Docker Oxford launch - Introduction to Docker
 

Recently uploaded

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 

Recently uploaded (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 

Docker.pptx

  • 2. Agenda of the Day • Introduction to Docker • What and Why of Containers? • Understanding Docker Lifecycle • Building docker images using Dockerfile • What is Docker Compose?
  • 3. Docker Leading open-source containerization platform Supported natively in Azure Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in
  • 5. Docker CLI • Command-line interface for Docker, available for Linux, OS X, and Windows (available separately or as part of Docker Toolbox)
  • 6. Running a Container docker run -i -t ubuntu /bin/bash
  • 7. Containers Lightweight alternative to virtual machines Smaller, less expensive, faster to start up, and self-contained Host Operating System Hypervisor Guest OS Libraries App Guest OS Libraries App Guest OS Libraries App Operating System Container Engine Libraries App Libraries App Libraries App Virtual Machines Containers
  • 8. Processes in containers are isolated from other containers in user space, but share the kernel with the host and other containers Differences in underlying OS and infrastructure are abstracted away, streamlining “deploy anywhere” approach Containers can be created almost instantly, enabling rapid scale- up and scale-down in response to changes in demand Containers
  • 11. Common Docker CLI Commands docker run - Use an image to run a container docker pull - Pull an image from a registry docker build - Build a Docker image docker exec - Execute a command in a container docker stop - Stop a running container docker images - List available Docker images docker ps - List running Docker containers
  • 12. Running Containers on Linux Container A App 1 Container B App 2 Container C App 3 Linux-Based Host Operating System Infrastructure Container A • Isolation from kernel-level container support • Containers are started from images Container B • Binaries depend on specific OS/kernel Container C • No guest OS needed
  • 13. What is Docker? Server Docker Daemon Rest API Client Docker CLI Manages • Container • Network • Image • Data Volumes
  • 14. Container Anatomy • Container images • The container • Container tooling Container layer (Thin r/w) Your Application Updates/Patches/Additional tools Frameworks and Tools Base OS layer
  • 16. What is Docker Compose? • Used to instance multiple containers • Can reference Dockerfiles and/or images • Paired with docker-compose.yml Web Frontend SQL Server on Linux Web API Redis Cache
  • 17. Docker-Compose Structure Version: ‘3.0’ Services: service-name: image: docker-image image: how to build depends on: -other services environment: -key/value pairs ports: -port mapping network: network-name: volumes: volume-name:
  • 19. DevOps flow – CD push to cluster

Editor's Notes

  1. Docker (www.docker.com) isn't the world's only containerization platform, but it is the most popular. It is free, open-source, and Linux-based, with Windows support (Windows Server 2016) in the works. It has earned massive mindshare in the developer community. And with Azure Container Service, you can deploy Docker containers to Azure with minimal effort. Moreover, Docker containers are easily moved between Azure and Amazon Web Services (AWS), affording developers portability between cloud platforms.
  2. Docker utilizes a client-server architecture. You execute Docker commands through a Docker client such as the Docker CLI or Kitematic. The client uses REST commands to communicate with the Docker daemon running on a Docker host such as the Azure Container services. These commands can be used to push, pull (docker pull), and create Docker images, to run them in containers, and to manage those containers. Images can be built with the docker build command, and they can be stand-alone, or they can "inherit" from other images. Images are stored in Docker registries, which can be public or private, local or remote. Docker Hub is a popular public registry that is managed by Docker; it contains a "huge collection" of images that anyone may use. The docker run command runs a container using an image as a template.
  3. The Docker Client, also known as the Docker CLI, is the primary tool you use to manage Docker containers. You can download container images from repositories such as Docker Hub, build container images, run container instances, list container images and instances, and much more. After connecting to Azure Container Service using SSH, you can use port forwarding to execute commands locally that act on an Azure Container Service running in the cloud. In this example, the -H switch used with the docker commands forwards commands sent to port 22375 on localhost to the Azure Container Services via SSH.
  4. This command pulls the image named "Ubuntu" from Docker Hub (or a local registry if the image is cached there) and runs it interactively in a container. "Interactively" means standard input, output, and error are connected locally so you can provide input to the container and see its output. Of course, you are not limited to the "Ubuntu" image. You can specify other images and even create images of your own with docker build. Where the container runs depends on the context. The container can run locally in a docker host (for example, a VM on Windows), or it can remotely if you connect to a remote Docker daemon (for example, one running in Azure) via SSH tunneling and use port forwarding to forward docker commands to the daemon.
  5. A virtual machine is -- well -- a virtualized machine created and managed by a hypervisor such as VirtualBox or Hyper-V. Even though a VM runs on a machine that has an operating system, each VM requires its own complete operating system, even if it's the same operating system as the host OS. VMs offer a very high degree of isolation, but at a cost: longer startup times, lower portability (ever tried to move a 127 GB virtual hard disk, or VHD, from one PC to another?), and higher memory requirements. Containers, by contrast, leverage the operating system that is already in place but offer nearly as much separation. RAM requirements are lower since the OS isn't being duplicated in each container, and cost is lower, too, because while cloud platforms typically charge for each VM, a single VM can host multiple container instances.
  6. These are some of the most commonly used docker commands. You can also use docker push to push an image to a registry such as Docker Hub. Also, docker ps is often accompanied by a -a switch to list all containers, including those that are no longer running, while docker rm and docker rmi are used to delete (remove) containers and images, respectively. The docker build command uses a Dockerfile (a text file containing build commands) and a "context" -- for example, a specified directory in the file system -- to build Docker images.
  7. Before we talk about Docker, let’s give a little bit of background on containers. The easiest way to explain containers is to start thinking about a Virtual Machine. A Virtual Machine is a machine that runs within another Computer. The virtual machines use virtualized hardware. Other than that, it is the same as a physical machine. They need their own OS and drivers, etc. A container does not run on virtualized hardware. It runs on the existing OS and uses the same processes and drivers, but in isolation. Storing only the changes from the host OS. This means you cannot run a Windows Container on Linux and vice versa. Because a container does need its own OS, they are small and fast. And because they are small, you can run many container instances on one host.
  8. And then Docker. Docker is an open platform for developing, shipping, and running applications. Docker consists of a few components. The Docker Daemon which is the communication engine between host machine and container, A REST Api to interact with the daemon and the Docker CLI. The CLU uses the API in a user-friendly way to allow users to work with Docker.
  9. When we talk about docker and containers, we also need to talk about images, since a container is the running instance of a container image. Lets first take a look at what an image is. To run a container, we need an image. An image consists of several layers. The first layer of an image is always the base operating system layer. This is where all the required files are that are needed together with the shared operating system kernel to provide the operating system services. On top of the operating system layer, you can create new layers. Each layer is a delta added to the base layer. For example, if I would like to have a container running NGINX, we need to add a layer that installs this. After you commit the changes to the new image, you can use this image as the starting point of a new image that .e.g. adds the NODEJS capabilities on top of that. This way you constantly add layers to the images, until you have a container that is fully capable of running your own application The container is a running instance of the image. This means the operating system adds a thin read/write layer on top of the container image. The nice thing about a container is that when you stop it and start a new instance, you always start from that clean image. This way you never pick up any changes on the image, ensuring there is no drift in e.g. configuration. We call this the immutability of the image. Once you created an image, you can not change it. Changing it means you create a new image.
  10. The great part about Docker is that you can do everything as code. Either by running commands in the Docker CLI or by creating Docker Files that describe how a container image should look like. In the example, you can see that the Docker file builds on top of a node base images, exposes a port 3000, creates a new directory and then copies files and runs NPM install, When running a Docker build command, the Docker file is executed and the immutable image is created.
  11. When an application consists of multiple parts (e.g., an API, Web application and database) you need to run all containers at the same time and connect them in a network. To facilitate orchestration of multiple containers, you can use Docker-compose. Docker-compose allows you to describe a composition that uses either existing container images or builds them om the fly using the already created docker files
  12. Docker compose files are described in YAML where you can specify both the build and run parameters.